1. 인공 신경망
* 인공신경망: 생물학적 뉴런에서 영감을 받아 만든 머신러닝 알고리즘, 신경망은 기존의 머신러닝 알고리즘으로 다루기 어려웠던 이미지, 음성, 텍스트 분야에서 뛰어난 성능을 발휘하며 주목 받고 있고 인공 신경망 알고리즘을 딥러닝이라고 부름
* 텐서플로: 딥러닝 라이브러리, 케라스를 핵심 API로 채택하여 모델을 손쉽게 만듬
* 밀집층: 가장 간단한 인공 신경망의 층, 밀집충에서는 뉴런들이 모두 연결되어 있기 때문에 완전 연결 층이라고 부름
* 원-핫 인코딩
* TensorFlow
- Dense는 밀집층을 만드는 클래스
- Sequential: 케라스에서 신경망 모델을 만드는 클래스
- compile()은 모델 객체를 만든 후 훈련하기 전에 사용할 손실함수와 측정 지표등을 지정
* loss 매개변수에 손실 함수지정
- 이진분류: 'binary_crossentropy'
- 다중분류: 'categorical_crossentropy'
- fit()은 모델을 훈련하는 메서드
- evaluatte()는 모델 성능 평가하는 메서드
2. 심층 신경망
* 심층 신경망: 2개 이상의 층을 포함한 신경망
* 렐루함수: 이미지 분류 모델의 은닉층에 많이 사용하는 활성화 함수, 시그모이드 함수의 단점 보완
* 옵티마이저: 케라스는 기본적으로 미니배치 경사하강법 사용, 다양한 경사 하강법 알고리즘
- SGD, 네스테로프 모멘텀, RMSprop, Adam 등
* 활성화함수: 시그모이드, 소프트맥스, 렐루 함수
* 손실함수:
* 옵티마이저:
* TensorFlow
- add()는 케라스 모델에 층을 추가하는 메서드
- summary()는 케라스 모델의 정보를 출력하는 메서드
* 모델에 추가된 층의 종류와 순서 등, name으로 이름 지정
- SGD: 기본 경사 하강법 클래스
- Adagrad: 옵티마이저 클래스
- RMSprop: 옵티마이저 클래스
- Adam: 옵티마이저 클래스
3. 신경망 모델 훈련
* 드롭아웃은 은닉층에 있는 뉴런의 출력을 랜덤하게 꺼서 과대적합을 막는 기법
* 콜백은 케라스 모델을 훈련하는 도중에 어떤 작업을 수행할 수 있도록 도와주는 도구
* 조기종료: 검증 점수가 더 이상 감소하지 않고 상승하여 과대적합이 일어나면 훈련을 멈추는 기법
* TensorFlow
- Dropout은 드롭아웃 층
- save_weights()는 모든 가중치와 절편을 파일에 저장, load_weights()은 파일을 지정하고 읽기
- save()는 모델 구조와 모든 가중치와 절편을 저장, load.model()로 로드
- ModelCheckpoint는 케라스 모델과 가중치를 일정 간격으로 저장
- EarlyStopping은 관심지표가 더이상 향상하지 않으면 훈련 중지
* Numpy
- argmax는 배열에서 축을 따라 최댓값의 인덱스를 반환
'[ML&DL]' 카테고리의 다른 글
[ML&DL] 텍스트를 위한 인공 신경망 (0) | 2023.03.15 |
---|---|
[ML&DL] 이미지를 위한 인공 신경망 (0) | 2023.03.14 |
[ML&DL] 비지도학습 (0) | 2023.03.10 |
[ML&DL] 트리 알고리즘 (0) | 2023.03.09 |
[ML&DL] 다양한 분류 알고리즘 (0) | 2023.03.08 |