역전파 Backpropagation
·
머신러닝/딥러닝
기계학습은 가중치 매개변수의 초깃값을 먼저 신경망에 적용한 이후, 최적화를 하기위해 각 가중치 매개변수에 대한 손실함수의 gradient를 이용하여 가중치의 값을 조정해 나간다. 이때 모든 가중치를 하나하나 일일히 계산하여 업데이트 하는 것은 시간이 오래걸려서 비효율적이다. 그래서 순전파를 통해 구해진 오차를 역전파해서 효율적으로 가중치를 업데이트 해나가는 것이다. 이때의 오차 값은 여러 가중치와 활성화 함수를 거쳐서 나오게 된 값으로 이를 거슬러 올라가기 위해 미분의 chain rule 성질을 이용한다. 해당 신경망에서 체인룰을 이용해 w5의 에러 함수 미분을 한다면 아래의 식과 같다. $$ \frac{\partial E_{total}}{\partial w_5} = \frac{\partial E_{to..
경사하강법 Gradient Descent (2)
·
머신러닝/딥러닝
https://hajinnote.tistory.com/26 이번시간에는 경사하강법을 보완한 다양한 방법들을 알아보자. Momentum 모멘텀은 최소 값으로 진행하는 속도에 관성을 줘서 경사하강법이 가진 단점인 평탄한 곳에 빠지거나 속도가 느린점을 보완하는 방법이다. 이전 gradient에 대한 정보가 담긴 모멘텀 벡터를 추가해서 얼마나 업데이트를 할지 결정한다. 너무 빠르게 진행되지 않도록 γ 파라미터를 추가해 속도를 제어 한다. (ex. 이전 기울기 값이 양수라면 양수 값이 계속 더해져서 스텝사이즈가 너무 커지는 것을 방지) $$ v = \alpha v + \eta \frac{\partial L}{\partial W} $$ $$ W = W+v $$ Neserov accelerated gradient N..
벡터와 행렬 기초 정리
·
머신러닝/데이터 분석
기초내용 용어 정리 위주 벡터란? 크기와 방향으로 정의되는 값 단위 벡터 unit vector : 크기가 1인 벡터(i, j 표기) 임의의 벡터를 단위 벡터 조합으로 표기 할 수 있음 스칼라 : 크기만 있고 방향이 없는 값 (실수) 벡터의 길이 Length : 모든 원소의 제곱을 더 한 후 루트를 씌운 값 (피타고라스 정리) 벡터의 내적 Dot product 벡터끼리의 곱, 결과값은 스칼라. 각 구성요소를 곱해야 해서 두 벡터의 길이가 동일해야 구할 수 있음. $$ \vec{V_1} \cdot \vec{V_2} =[a \ b] \begin{bmatrix}x \\ y\end{bmatrix}=ax+by $$ $$ \vec{V_1} \cdot \vec{V_2} =|\vec{V_1}||\vec{V_2}|cos ..
경사하강법 Gradient Descent (1)
·
머신러닝/딥러닝
경사하강법은 미분계수를 사용해 함수의 최소값을 찾아가는 방법이다. 기계학습에서 cost function(손실함수, 목적함수)을 최소화하기 위해 사용한다. $$ (H)x = Wx + b $$ $$ cost(W) = \frac{1}{m} \sum_{i=1}^m(Wx^{(i)}-y^{(i)})^2 $$ Cost function 이란 데이터와 데이터를 토대로 만든 모델 사이의 거리를 구해서 최적의 모델을 만들 수 있도록 하는 함수를 정의한 말이다. 쉽게 말해 실제 데이터와 예측 데이터 간의 거리, 즉 에러(잔차)를 구하는 것으로 이 거리가 적을 수록 실제 데이터에 모델이 fit되어 최적화가 되었다고 하는 것이다. Cost function은 우리의 목적이 되는 함수기 때문에 목적함수라는 이름으로도 불린다. 위의 ..
추천시스템 - 협업 필터링(Collaborative Filtering) (1)
·
머신러닝
추천시스템이란? 정보필터링 기술의 일종으로 주어진 아이템에 대한 특정 유저의 점수나 선호도를 예측해 추천하는 것이다. 추천 시스템의 알고리즘은 크게 협업 필터링과 내용 기반 필터링으로 나뉜다. 1. 협업 필터링 (Collaborative Filtering) • memory-based Approach - 사용자 기반(User-based) - 아이템 기반(item-based) • model-based Approach 2. 내용 기반 필터링(Contents-based Filtering) Collaborative Filtering 협업 필터링 비슷한 관심사를 가진 사용자들의 정보를 모아 추천하는 방식. 가정 : 특정 아이템에 선호도가 비슷한 사용자들은 다른 아이템에 대한 선호도도 비슷할 것이다. -> 공통된 패..
K means 클러스터링
·
머신러닝
Clustering 군집화 클러스터링이란 레이블이 없는 데이터 안에서 패턴과 구조를 발견하는 비지도 학습 기술이다. 추천 엔진, 검색 엔진 등에 많이 사용된다. K-means 클러스터링 K : 찾을 것으로 예상되는 클러스터 수 Means : 각 데이터로부터 그 데이터가 속한 클러스터 중심까지의 평균거리. 이 값을 최소화 하는 것이 알고리즘의 목표이다. K-means 알고리즘 K 개의 임의의 중심점(centroid) 배치 각 데이터들을 가장 가까운 중심점으로 할당 중심점을 각 클러스터 중심으로 이동 클러스터에 assign 되는 데이터가 없을 때 까지 중심점을 업데이트하며 스텝 2-3 반복 최적의 K 값 정하기 Elbow 기법 클러스터 개수를 늘렸을 때 중심점 간의 평균 거리가 더 이상 많이 감소하지 않는 ..
차원축소와 PCA(주성분 분석)
·
머신러닝
차원축소는 많은 feature로 구성된 다차원 데이터 셋의 차원을 축소해 새로운 차원의 데이터 셋을 생성하는 것이다. 차원 축소를 하는 이유 시각화 3차원이 넘어간 시각화는 눈으로 볼 수 없기 때문에 차원 축소후 시각화, 데이터 패턴을 인지 예측 신뢰도를 높일 수 있다 피쳐간의 상관관계가 높을 가능성과 과적합 발생 가능성이 줄어들음 메모리 절약 퍼포먼스 향상 등등.. Feature extraction 기존 변수들을 사용해 새로운 변수를 추출해내는 방법, 일부만 사용할 수 도 있고 전부 사용할 수 도 있다 (여기에 PCA 해당) Feature selection 중요한 피쳐 몇개만 골라내서 사용하는 방법 PCA principal component analysis 데이터의 분산을 최대한 보존하면서 서로 직교하..
정규화와 표준화
·
머신러닝
Noramlization (정규화) normalization 은 데이터의 범위를 0~1 사이의 값으로 변환한다. 값의 범위가 다르면 직접 비교가 불가능 하기 때문에 학습에 앞서 데이터의 스케일을 맞춰주는 것이다. 예를 들면 1000점 만점인 시험에서의 100점과 100점 만점인 시험에서의 100점은 범위가 다르기 때문에 그대로 비교 할 수 없다. 정규화를 거치게 되면 0.1과 1이라는 값으로 변환되어 100점이라는 점수가 각 시험에서 어떤 중요도를 갖는지 알 수 있게 된다. 이처럼 모든 데이터가 동일한 정도의 스케일(중요도)로 반영되도록 해주는게 정규화의 사용 이유이다. 정규화 되기 전 그래프를 그려보면 가늘고 길쭉한 형태이다. x1은 1~1000의 범위를 가지고 x2는 0~1의 범위를 가진다고 한다면 ..
부스팅 모델
·
머신러닝
앙상블 기법 중 하나로 약한 학습기(weak learner)들을 순차적으로 여러개 결합하여 사용하는 알고리즘. 앞선 랜덤포레스트가 배깅 방식 이었다면 이번에는 부스팅 방식에 대해 알아보자. 부스팅 알고리즘 이전 학습기의 에러를 반영해서 현재 학습기에 가중치 weight 주면서 순차적으로 학습하는 방식이다. 잘못 분류한 부분의 가중치를 증가시키고 잘 분류한 부분의 가중치를 감소해서 다음 학습기에 반영시켜 loss를 줄여나간다. 오답에 집중하기 때문에 높은 정확도를 가지나 에러에 높은 가중치를 주다보니 이상치에 취약해지는 단점을 가지고 있다. 다음은 부스팅 알고리즘을 사용한 모델이다. 이하 간단 설명 덧붙임. AdaBoost GBM(Gradient Boosting Machine) XGBoost LightBo..