한주동안 배운거 정리
퍼셉트론 : 다중 신호를 입력받아 한개의 신호를 출력하는 구조
다층 퍼셉트론 신경망 : 선형 경계로는 풀수 없는 문제를 층을 여러개 쌓음으로서 해결하게 해주는 퍼셉트론
입력층 : 데이터셋이 입력되는 층, 입력되는 데이터셋의 특성에 따라 입력층의 노드수가 결정됨. 계산을 하지 않고 전달만 하는 역할을 하기 때문에 신경망의 층수에는 관여하지 않음.
은닉층: 입력된 신호가 가중치, 편향과 함께 연산되는 층, 딥러닝은 은닉층이 2개 이상인 신경망을 말함.
출력층: 은닉층 연산을 마친 값이 출력되는 층,
- 이진분류 : 활성화함수 = 시그모이드 , 출력층 노드수 = 1
- 다중 분류 : 활성화함수 = 소프트맥스, 출력층 노드수 = 레이블의 클래스 수와 동일
- 회귀 : 활성화함수를 지정하지않음, 출력층의 노드수 = 출력값의 특성수와 동일
순전파 : 입력층에서 입력된 신호가 은닉층의 연산을거쳐 출력층에서 값을 내보내는 과정
손실계산 : 순전파에서 나온 값을 손실함수에 넣어 손실을 계산하는 과정.
역전파 : 손실 정보를 전달해주는 과정, 손실정보를 출력층부터 입력층까지 전달하여 각 가중치를 얼마나 업데이트 해야할지 구하는 알고리즘, 어떻게 가중치를 수정하는지는 경사하강법에 다르다.
경사하강법 : 손실함수의 도함수를 계산하여 경사가 작아지는 방향으로 가중치를 변경
옵티마이저 : 경사를 내려가는 방법, GD , SGD, Momentum, adagrad, adam
학습률 : 매 가중치에 대해 구해진 기울기 값을 얼마나 적용할지를 결정하는 파라미터.학습률이 크면 보폭이크니 iteration마다 성큼성큼 이동하고 , 작으면 보폭이 작아 조금씩만 이동하게 된다. 학습률이 너무 작으면 최적점에 도달하는데에 시간이 너무 오래걸리거나 도달하지 못할수도 있다. 반대로 너무 크면 값이 발산하게 되어 최적값을 찾을수 없다. 그래서 최적의 학습률을 찾는것이 중요한데 이를 위해 학습률 감소/계획법이 사용된다.
가중치 초기화 : 가충치의 설정에 따라 기울기 소실문제, 표현력의한계 , 과대과소적합 문제를 해결할 수 있다. 즉, 같은 모델을 훈련시키더라도 가중치가 어떤 초기값을 갖느냐에 따라서 모델의 훈련 결과가 달라진다.
Regularization
가중치감소(Weight Decay) : 가중치가 너무 커질경우 과적합이 일어날수 있으므로 적당히 제한할 필요가 있다. 여기선 Lasso, Ridge 규제가 사용된다.
드롭아웃 : 매 iteration 마다 특정비율만큼 훈련 노드를 제한할 수 있다.
조기 종료 : 학습 데이터에 대한 손실은 계속 줄어들지만 검증 데이터셋에 대한 손실은 증가한다면 학습을 종료 하도록 설정하는 방법.
교차 검증 : 데이터셋이 부족할때 훈련데이터셋을 균등히 분배해 모두 검증하는 방법을 말한다.
GridSearch 와 RandomSearch : 그리드서치는 지정한 파라미터의 모든경우의수 만큼의 모델 학습을 진행하게 된다. 모든값을 학습한 그만큼 높은 결과값의 하이퍼파라미터를 찾아주지만 시간이 오래걸린다는 단점이 있다. RandomSearch는 파라미터의 지정한 범위내에 무작위로 모델을 돌려본후 최고 성능의 모델을 반환한다. 상대적으로 중요한 하이퍼파라미터에 대해서는 탐색을 더 하고, 덜 중요한 하이퍼파라미터에 대해서는 실험을 덜 하도록 한다.
파라미터 : 머신이 학습하는 변수
하이퍼파라미터 : 사용자가 지정하는 변수
- ex) epoch , batch_size , learning_rate , activation , Regularization , optimizers, 은닉층의 노드수