페이스북 그룹 '소프트웨어캠퍼스' 커뮤니티의 서적 [밑바닥부터 시작하는 딥러닝]으로 진행한 스터디 발표 자료 입니다. 해당 자료는 챕터6 학습관련기술들에 대한 내용입니다. 외부 자료 상당 부분 사용하였으며 자료 출처는 슬라이드 뒷부분에 기재하였습니다.
프레젠테이션 페이지별 스크립트: https://www.slideshare.net/hyeseunglee6/ss-75889203
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
단순히 공식으로 설명하지 않고, 실제 코드 및 샘플데이터를 이용하여 수식의 결과가 어떻게 적용되는지 자세하게 설명하고 있다.
처음 week1 ~ week4 까지는 김성훈 교수님의 "모두를 위한 딥러닝"에서 한번 이해했던 내용이라 좀 쉽게 진행했고, 나머지는 기초가 부족한 상황이라 다른 자료를 꽤 많이 참고하면서 학습해야 했다.
여러 도서나 강의를 이용하여 머신러닝을 학습하려고 했었는데, 이 강의만큼 나에게 맞는것은 없었던거 같다. 특히 Octave code를 이용한 실습자료는 나중에도 언제든 활용가능할 것 같다.
Week1
Linear Regression with One Variable
Linear Algebra - review
Week2
Linear Regression with Multiple Variables
Octave[incomplete]
Week3
Logistic Regression
Regularization
Week4
Neural Networks - Representation
Week5
Neural Networks - Learning
Week6
Advice for applying machine learning techniques
Machine Learning System Design
Week7
Support Vector Machines
Week8
Unsupervised Learning(Clustering)
Dimensionality Reduction
Week9
Anomaly Detection
Recommender Systems
Week10
Large Scale Machine Learning
Week11
Application Example - Photo OCR
xgboost를 이해하기 위해서 찾아보다가 내가 궁금한 내용을 따로 정리하였으나, 역시 구체적인 수식은 아직 모르겠다.
요즘 Kaggle에서 유명한 Xgboost가 뭘까?
Ensemble중 하나인 Boosting기법?
Ensemble 유형인 Bagging과 Boosting 차이는?
왜 Ensemble이 low bias, high variance 모델인가?
Bias 와 Variance 관계는?
Boosting 기법은 어떤게 있나?
Xgboost에서 사용하는 CART 알고리즘은?
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
단순히 공식으로 설명하지 않고, 실제 코드 및 샘플데이터를 이용하여 수식의 결과가 어떻게 적용되는지 자세하게 설명하고 있다.
처음 week1 ~ week4 까지는 김성훈 교수님의 "모두를 위한 딥러닝"에서 한번 이해했던 내용이라 좀 쉽게 진행했고, 나머지는 기초가 부족한 상황이라 다른 자료를 꽤 많이 참고하면서 학습해야 했다.
여러 도서나 강의를 이용하여 머신러닝을 학습하려고 했었는데, 이 강의만큼 나에게 맞는것은 없었던거 같다. 특히 Octave code를 이용한 실습자료는 나중에도 언제든 활용가능할 것 같다.
Week1
Linear Regression with One Variable
Linear Algebra - review
Week2
Linear Regression with Multiple Variables
Octave[incomplete]
Week3
Logistic Regression
Regularization
Week4
Neural Networks - Representation
Week5
Neural Networks - Learning
Week6
Advice for applying machine learning techniques
Machine Learning System Design
Week7
Support Vector Machines
Week8
Unsupervised Learning(Clustering)
Dimensionality Reduction
Week9
Anomaly Detection
Recommender Systems
Week10
Large Scale Machine Learning
Week11
Application Example - Photo OCR
xgboost를 이해하기 위해서 찾아보다가 내가 궁금한 내용을 따로 정리하였으나, 역시 구체적인 수식은 아직 모르겠다.
요즘 Kaggle에서 유명한 Xgboost가 뭘까?
Ensemble중 하나인 Boosting기법?
Ensemble 유형인 Bagging과 Boosting 차이는?
왜 Ensemble이 low bias, high variance 모델인가?
Bias 와 Variance 관계는?
Boosting 기법은 어떤게 있나?
Xgboost에서 사용하는 CART 알고리즘은?
모두를 위한 Deep Reinforcement Learning 강의를 요약정리
http://hunkim.github.io/ml/
실습에 사용된 코드
https://github.com/freepsw/tensorflow_examples/tree/master/20.RL_by_SungKim
Coursera Machine Learning by Andrew NG 강의를 들으면서, 궁금했던 내용을 중심으로 정리.
내가 궁금했던건, 데이터를 분류하는 Decision boundary를 만들때...
- 왜 가중치(W)와 decision boundary가 직교해야 하는지?
- margin은 어떻게 계산하는지?
- margin은 어떻게 최대화 할 수 있는지?
- 실제로 margin을 최대화 하는 과정의 수식은 어떤지?
- 비선형 decision boundary를 찾기 위해서 어떻게 kernel을 이용하는지?...
http://blog.naver.com/freepsw/221032379891
밑바닥부터 시작하는 딥러닝 책 리뷰입니다.
자세한 내용은 책을 참고하세요
--------------------------------------------------------------
오타!!!
26p 의 ReLU함수에서 역전파 되는 값 분모의 x 를 y로 바꾸어야 합니다.
Vector Optimization (by Jinhwan Seok. M.S student at KAIST)
The concept of vector optimization and its applications
-Regularized least squares
-Smoothing approximation
-Reconstruction
Reference)
convex optimization, Boyd (2004)
모두를 위한 Deep Reinforcement Learning 강의를 요약정리
http://hunkim.github.io/ml/
실습에 사용된 코드
https://github.com/freepsw/tensorflow_examples/tree/master/20.RL_by_SungKim
Coursera Machine Learning by Andrew NG 강의를 들으면서, 궁금했던 내용을 중심으로 정리.
내가 궁금했던건, 데이터를 분류하는 Decision boundary를 만들때...
- 왜 가중치(W)와 decision boundary가 직교해야 하는지?
- margin은 어떻게 계산하는지?
- margin은 어떻게 최대화 할 수 있는지?
- 실제로 margin을 최대화 하는 과정의 수식은 어떤지?
- 비선형 decision boundary를 찾기 위해서 어떻게 kernel을 이용하는지?...
http://blog.naver.com/freepsw/221032379891
밑바닥부터 시작하는 딥러닝 책 리뷰입니다.
자세한 내용은 책을 참고하세요
--------------------------------------------------------------
오타!!!
26p 의 ReLU함수에서 역전파 되는 값 분모의 x 를 y로 바꾸어야 합니다.
Vector Optimization (by Jinhwan Seok. M.S student at KAIST)
The concept of vector optimization and its applications
-Regularized least squares
-Smoothing approximation
-Reconstruction
Reference)
convex optimization, Boyd (2004)
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
1. O P T I M I Z A T I O N
CHAPTER 6
학습관련기술들
SUBJECT 신경망학습효율,정확도높이기
확률적 경사 하강법
신경망학습의목적은손실함수의값을가능한한낮추는매개변수를찾
는것이었다.이는곧최적매개변수를찾는문제이며,이러한문제를
READ MORE
R E G U L A R I Z T I O N
드롭 아웃 drop out
:오버피팅을 억제하는 정규화 기법
드롭아웃은뉴런을임의로삭제하면서학습하는방
법입니다. 복잡한신경망모델에효과적입니다.
H Y P E R P A R A M E T E R
O P T I M I Z A T I O N
7. CHAPTER 6-1
매개변수갱신:최적화
Gradient Descent Optimization at Long Valley Gradient Descent Optimization at Saddle Point Gradient Descent Optimization at Beale's Function
확률적 경사 하강법
Stochastic Gradient Descent
[SGD의한계]
15. CHAPTER 6-1
매개변수갱신:최적화
Gradient Descent Optimization at Long Valley Gradient Descent Optimization at Saddle Point Gradient Descent Optimization at Beale's Function
모멘텀
Momentum
17. CHAPTER 6-1
매개변수갱신:최적화
매개변수별 맞춤형 학습률 조정
AdaGrad
기울기를제곱하여누적한다
학습률을직접조정
학습이진행될수록학습률을낮춤
많이 변화한 변수들은 최적값에 가까이 있을 확률이 높기 때문에 작은 크기로 이동하면서 세밀한 값을 조정,
적게 변화한 변수들은 최적값에 도달하기 위해 많이 이동해야할 확률이 높기 때문에 빠르게 크게 이동하는 방식
대개0.01로시작,
이후자동조정됨
19. CHAPTER 6-1
매개변수갱신:최적화
Gradient Descent Optimization at Long Valley Gradient Descent Optimization at Saddle Point Gradient Descent Optimization at Beale's Function
매개변수별 맞춤형 학습률 조정
AdaGrad & RMSProp
34. CHAPTER 6-2
가중치의초깃값
가중치 초깃값을 모두 0으로 하면 오차역전파
법에서 모든 가중치의 값이 똑같이 갱신된다.
초깃값을 똑같이 두고 시작하면 갱신을 거쳐도
가중치는 같은 값을 유지하게 된다. 이는 가중
치를 여러개 갖는 의미를 사라지게 한다. 따라
서 초깃값은 0이나 모두 동일한 값이 아닌
무 작 위 로 설 정 해 야 한 다 .
초깃값을 0으로 하면?
36. 가중치 초깃값에 따라 은닉층 활성화 함수가 변화하는 양상 확인
[실험1] 5개 층, 각 층별 100개의 뉴런, 입력데이터 1000개(정규분포), 활성화함수 시그모이드
CHAPTER 6-2
가중치의초깃값
은닉층의 활성화값 분포
[가중치를 표준편차 1인 정규분포로 초기화할 때 활성화값 분포]
모든 층의 활성화값들이 0과 1에 치우쳐 분포 시그모이드 함수 시그모이드의 편미분 함수
기울기 소실 문제
37. CHAPTER 6-2
가중치의초깃값
[가중치를 표준편차 0.01인 정규분포로 초기화할 때 활성화값 분포]
표현력 제한 문제
모든 층의 활성화값들이 0.5 부근에 집중됨
= 다수의 뉴런이 거의 같은 값을 출력
가중치 초깃값에 따라 은닉층 활성화 함수가 변화하는 양상 확인
[실험1] 5개 층, 각 층별 100개의 뉴런, 입력데이터 1000개(정규분포), 활성화함수 시그모이드
은닉층의 활성화값 분포
38. CHAPTER 6-2
가중치의초깃값
앞 계층의 노드가 개라면 표준편차가 1/ 인 정규분포로 초기화
은닉층의 활성화값 분포
Xavier초깃값
[가중치의 초깃값으로 ‘Xavier 초깃값’을 이용할 때의 각 층의 활성화값 분포]
각 층에 흐르는 데이터가 충분히 퍼져있어 학습이 효율적으로 이뤄질 것으로 기대됨
45. 신경망 학습단계에서 활성화값이 표준정규분포를 갖도록 강제하는 기법
CHAPTER 6-3
배치정규화
배치정규화 알고리즘
Batch normalization
학습 속도 개선
초깃값에 의존하지 않음
오버피팅 억제: 드롭아웃 등 필요성 감소
배치정규화의 강점
46. 미니배치를 단위로 데이터 분포가 평균이 0, 분산이 1이 되도록 정규화
CHAPTER 6-3
배치정규화
배치정규화 알고리즘
Batch normalization
M개의 입력데이터 집합(미니배치) B = { , , …, }
←
1
←
1
−
←
−
+
미니배치 B의 평균
미니배치 B의 분산
평균0, 분산1로 정규화
작은 값(ex. 10e-7)
0으로 나누는 상황 예방
확대 역할
초깃값 1
이동 역할
초깃값 0
확대와 이동 변환 ⟵ +
59. CHAPTER 6-4
오버피팅억제기술
드롭아웃
Dropout
뉴런을 임의로 삭제하면서 학습하는 방법
TRAIN - (b)
데이터를 흘릴 때마다 은닉층의 뉴런을 무작위로 골라 삭제
삭제된 뉴런은 신호 전달하지 않게 됨
TEST
모든 뉴런에 신호를 전달
단, 각 뉴런의 출력에 훈련 때 삭제한 비율을 곱하여 출력
60. CHAPTER 6-4
오버피팅억제기술
Dropout과 앙상블
앙상블이란 개별적으로 학습시킨 여러 모델의 출력을
평균 내어 추론하는 방법 (voting등 다른 방법도 사용)이다.
Dropout의 경우 매번 무작위로 뉴런을 삭제하므로,
매 번 다른 모델을 학습시키는 것으로 볼 수 있다.
Neural Network에 앙상블을 직접 쓰지 않는 이유
앙상블은 일반화 에러를 줄이는데 강력한 기법이지만,
거대한 Neural Network이면 각각의 네트워크를 학습
시 키는 데 많은 메 모 리와 많 은 시 간 이 필 요 하 기 때 문
앙상블의 여러 모델의 평균
= Dropout의 출력에 삭제한 비율의 곱
64. CHAPTER 6-5
하이퍼파라미터값탐색
하이퍼파라미터의 성능 평가 전용 데이터
(하이퍼파라미터의 예: 각 층 뉴런 수, 배치 크기, 학습률, 가중치 감소 등등)
검증데이터
Validation data
훈련데이터
매개변수학습
검증데이터
하이퍼파라미터성능평가
시험데이터
신경망의범용성능평가
시험데이터를 사용하지 않는 이유: 시험데이터에 오버피팅 되기 때문
67. CHAPTER 6-5
하이퍼파라미터값탐색
하이퍼파라미터 최적화
Hyperparameter Optimization
‘최적값’이 존재하는 범위 줄여나가기
‘대략적인’ 범위 설정(10의 계승 단위 = 로그 스케일)
범위 내에서 무작위로 하이퍼파라미터 값 sampling
검증 데이터로 정확도 평가 (단, 에폭은 작게 설정)
위의 과정을 반복하여 범위 좁힌다
68. 기타 참고 자료 출처
http://aikorea.org/cs231n/neural-networks-3/#sgd
http://aikorea.org/cs231n/optimization-1/#gd
https://tensorflow.blog/2017/03/22/momentum-nesterov-momentum/comment-page-1/
http://shuuki4.github.io/deep%20learning/2016/05/20/Gradient-Descent-Algorithm-Overview.html
CHAPTER 6
학습관련기술들
도서 [밑바닥부터 시작하는 딥러닝]의 CHAPTER 6 내용을 기반으로 구성하였습니다.