본문 바로가기

[ML&DL]

[ML&DL] 딥러닝 입문

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