여정의 기록
[딥러닝의통계적이해] 딥러닝 모형의 구조와 학습 본문
다층신경망
입력층에서 은닉층을 통과할 때마다 데이터는 가중합과 활성화 함수가 적용
손실함수 최소인 가중치를 구해서 신경망을 작성
합성함수로 표현 - 함수의 합성 반복 -> 신경망의 목적 함수의 표현력이 좋아짐(은닉층이 깊어지는게 중요)
순방향신경망 FNN
같은 층 내가 아닌 앞의 층으로만 연결
활성화 함수
시냅구 구현 함수
일정 임계값이 넘었을 때 시냅스가 정보 전달하는 것을 이용 : 활성화 함수의 값이 일정값이 넘는 방식 개발
종류
- 항등함수(1을 넣으면 1이 나옴)
- 시그모이드함수(0 혹은 1로 수렴)
- tanh함수(-1 ~ 1, 0에서 기울기가 크게 움직임)
- ReLU함수(0 ~ 무한대, 0보다 작을땐 0, 클땐 항등함수)
(그래프 참고)
활성화 함수의 미분
- 항등함수(a(x)=x)의 미분값 : 1
- 시그모이드 함수a(x)=1/(q+e^-x)의 미분값 : - 1 / (1+e^x)^2 * -e^-x = a(x)(1-a(x))
- tanh 함수의 미분값 : (1-a(x))(1+a(x))
- ReLU 함수의 미분값 : x<0 일때 0, x>=0일때 1(ReLU는 0에서 미분 불가능)
미분의 용이성으로 시그모이드, tanh 함수 많이썼음 -> 은닉층 많이 만들면 -> 경사 소실문제 발생 (아무리 학습을해도 가중치가 변하지 않음)
-> 최근에는 ReLU 함수 발견되서 주로 사용
다층신경망의 표현
입력 - 가중합 - 활성화 함수 - 가중합 - 활성화 함수 - ... - 출력
활성화 함수(가중합) = f(가중합)
출력층의 활성화 함수
- 회귀모형 : 항등함수
- 이진분류 : sigmoid 함수
- 다중분류 : softmax 함수
신경망의 구조를 설계하는 것 = 입력과 출력은 고정되어있고, 은닉층의 수와 각 층별 뉴런의 수를 정하는 것
층이 깊어질수록 학습하기가 어렵다. 신경망이 보다 데이터의 표현력이 좋아짐
층별 뉴런의 수를 늘려도 신경망의 성과가 크게 좋아지지 않음
은닉층의 수 > 뉴런의 수 가 더 효율이 좋다. 뉴런의 수를 은닉층의 수의 1/n^2만큼 줄이는게 좋다.
활성화 함수의 비선형성이 없다 == 층을 누적할 필요가 없다
일반근사정리
충분한 크기의 뉴런을 가진 은닉층이 가진 한 개 이상인 다층 신경망은 모든 유한한 연속함수를 근사할 수 있다.
신경망이 딥러닝 모형으로 발전하는데 방해 요인
은닉층은 적고 뉴런이 많으면 -> 과대적합 문제
활성화 함수의 비선형성이 증가해서 데이터의 특성을 다층신경망(딥러닝)이 찾을 수 있음을 알게됨
신경망의 학습
데이터로 부터 설계한 것의 가중치의 값을 알아내는 것.
함수가 연속적으로 적용되는 ! 합성함수 | 행렬로 표현
과정 :
입력값 X -> 모형(가중치) -> 예측값 Y^(여기까지 순방향) - 실제값 Y 의 손실함수 추출 -> (역방향)최적화하여 가중치 갱신 -> 다시 예측 반복
역방향 : 손실함수 J(w) 기반 경사하강법을 통해 반복적으로 가중치들 갱신 - 학습해 나가는 것
손실함수 J(w) : Y^ - Y 비교
신경망을 학습하려면 데이터를 쪼개야함 - Data = Train data + Validation data + Test data = 60:20:20
(데이터의 크기에 따라 달라짐. Train data는 많을수록 좋다)
학습이란?
손실함수를 경사하강법으로 가중치 갱신 - 경사에 따라 일정한 학습률로 실행
가중치의 초기값이 학습속도에 중요함
주로 초기값은 근 0값
용어정리
- 1 epoch : 한 데이터셋 전체를 1회 학습
전체 Train data를 mini batch로 나눔. batch 모두 합쳐서 1번 훈련 == 1epoch
epoch 수 증가 == 훈련 데이터의 정확도 증가, 손실함수 감소
'공부중 ... > 딥러닝의통계적이해' 카테고리의 다른 글
합성곱 신경망이란 그리고 합성곱 연산 과정들에 대해서 (0) | 2022.12.13 |
---|---|
[딥러닝의통계적이해] 딥러닝의 제 문제와 발전 (0) | 2022.10.01 |
[딥러닝의통계적이해] 오차역전파법, 경사소실, 과대적합 (1) | 2022.10.01 |
[딥러닝의 통계적이해] 딥러닝과 통계학 (0) | 2022.08.18 |
[딥러닝의 통계적 이해] 딥러닝이란? (0) | 2022.08.17 |