Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- FTP
- 실기
- 서브넷마스크
- 프로토콜
- Machine learning
- ICQA
- network
- 자료구조
- 네트워크 자격증
- deep learning
- 파이썬
- Windows Server
- 네트워크
- 네트워크 관리사 2급
- 머신러닝
- 기본 정렬
- 패스트캠퍼스
- IPV4
- Algorithm
- Dynamic Programming
- dns
- 네트워크 관리사
- Protocol
- 알고리즘
- 딥러닝
- 코딩테스트
- 밑바닥부터 시작하는 딥러닝
- Django
- 자격증
- Python
Archives
- Today
- Total
쳉지로그
[밑바닥부터 시작하는 딥러닝] Chapter 4. 신경망 학습(1) 본문
4.1 데이터에서 학습한다!
4.1.1 데이터 주도 학습
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
- 딥러닝을 **종단간 기계학습(end-to-end machine learning)**이라고도 함
4.1.2 훈련 데이터와 시험 데이터
- 훈련 데이터(training data) : 학습하면서 최적의 매개변수를 찾음
- 시험 데이터(test data) : 앞서 훈련한 모델의 실력을 평가
훈련 데이터와 시험 데이터를 나누는 이유
• 우리가 원하는 것은 범용적으로 사용할 수 있는 모델이기 때문
• 범용 능력을 제대로 평가하기 위해 훈련 데이터와 시험 데이터를 분리하는 것
오버피팅(overfitting) • 한 데이터셋에만 지나치게 최적화된 상태. • 오버피팅 피하기는 기계학습의 중요한 과제임
4.2 손실 함수
손실 함수(loss function) : 신경망 학습에서 사용하는 지표
• 신경망 성능의 ‘나쁨’을 나타내는 지표
• 신경망이 데이터를 얼마나 잘 처리하지 ‘못’하느냐를 나타냄.
• 따라서 손실 함수가 최소일 수록 좋은 신경망 성능임.
• 손실 함수 종류 : 평균 제곱 오차, 교차 엔트로피 오차
4.2.1 평균 제곱 오차
평균 제곱 오차(mean squared error, MSE) : 가장 많이 쓰이는 손실 함수
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
• 𝑦𝑘 : 신경망의 출력(신경망이 추정한 값)
• 𝑡𝑘 : 정답 레이블
• 𝑘 : 데이터의 차원의 수
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
- 첫 번째 예의 손실 함수 쪽 출력이 작으며 정답 레이블과의 오차도 작은 것을 알 수 있음
- 평균 제곱 오차를 기준으로 첫 번째 추정 결과가 (오차가 더 작으니) 정답에 더 가까울 것으로 판단
4.2.2 교차 엔트로피 오차
교차 엔트로피 오차(cross entropy error, CEE)
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
• 𝑦𝑘 : 신경망의 출력(신경망이 추정한 값)
• 𝑡𝑘 : 정답 레이블. 정답의 원소만 1이고 나머지는 0(one-hot-encoding)
- 정답일 때의 추정(𝑡𝑘가 1일 때의 𝑦𝑘)의 자연 로그를 계산하는 식
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
- 결과(오차 값)가 더 작은 첫 번째 추정이 정답일 가능성이 높다고 판단한 것으로, 앞서 평균 제곱 오차의 판단과 일치
4.2.3 미니배치 학습
- 기계학습은 훈련 데이터에 대한 손실 함수의 값을 구하고, 그 값을 최대한 줄여주는 매개변수를 찾아냄
- 이렇게 하려면 모든 훈련 데이터를 대상으로 손실 함수 값을 구해야 함
예시) 교차 엔트로피 오차
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
미니배치 학습 구현 코드 (훈련 데이터에서 지정한 수의 데이터를 무작위로 골라내는 코드)
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
4.2.4 (배치용) 교차 엔트로피 오차 구현하기
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
4.2.5 왜 손실 함수를 설정하는가?
- 신경망을 학습할 때 정확도를 지표로 삼아서는 안 됨
- 정확도를 지표로 하면 매개변수의 미분이 대부분의 장소에서 0이 되기 때문
(참고) 계단함수와 시그모이드 함수
: 계단 함수는 대부분의 장소에서 기울기가 0, 하지만 시그모이드 함수의 기울기는 0이 아님
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
'머신러닝 > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글
[밑바닥부터 시작하는 딥러닝] Chapter 5. 오차역전파법 (0) | 2021.04.28 |
---|---|
[밑바닥부터 시작하는 딥러닝] Chapter 4. 신경망 학습(2) (0) | 2021.04.21 |
[밑바닥부터 시작하는 딥러닝] Chapter 3. 신경망 (0) | 2021.04.14 |
[밑바닥부터 시작하는 딥러닝] Chapter 2. 퍼셉트론 (0) | 2021.04.14 |
[밑바닥부터 시작하는 딥러닝] Chapter 1. 헬로 파이썬 (0) | 2021.04.14 |