[혼공단 6기]혼공머신 6주차

Enter·2021년 8월 13일

혼공단 6기

목록 보기
6/6

📖Chapter 07

📌 인공 신경망

▪ 생물학적 뉴런에서 영감을 받아 만든 머신러닝 알고리즘.
▪ 딥러닝이라고도 부름.


📌 텐서플로

▪ 구글이 만든 딥러닝 라이브러리.
▪ CPU와 GPU를 사용해 인공 신경망 모델을 효율적으로 훈련하며 모델 구축과 서비스에 필요한 다양한 도구를 제공함.
▪ 텐서플로 2.0부터 신경망 모델을 빠르게 구성할 수 있는 케라스를 핵심 API로 채택함.


📌 밀집층

▪ 가장 간단한 인공 신경망 층.
▪ 뉴런들이 모두 연결되어 있기 때문에 완전 연결 층이라고도 부름.
▪ 특별히 출력층에 밀집층을 사용할 때는 분류하려는 클래스와 동일한 개수의 뉴런을 사용함.


📌 원-핫 인코딩

▪ 정숫값을 배열해서 해당 정수 위치의 원소만 1이고 나머지는 모두 0으로 변환함.
▪ 다중 분류에서 출력층에서 만든 확률과 크로스 엔트로피 손실을 계산하기 위해서 변환이 필요함.
▪ 텐서플로에서는 'sparse_categorical_entropy' 손실을 지정하면 이런 변환을 수행할 필요가 없음.


📌 심층 신경망

▪ 2개 이상의 층을 포함한 신경망.
▪ 다층 인공 신경망, 심층 신경망, 딥러닝을 같은 의미로 사용함.


📌 렐루 함수

▪ 이미지 분류 모델의 은닉층에 많이 사용하는 활성화 함수.
▪ 시그모이드 함수는 층이 많을수록 활성화 함수의 양쪽 끝에서 변화가 작기 때문에 학습이 어려워지는 반면 렐루 함수는 이러한 문제가 없으며 계산도 간단함.


📌 옵티마이저

▪ 신경망의 가중치와 절편을 학습하기 위한 알고리즘.
▪ 대표적으로 SGD, 네스테로프 모멘텀, RMSprop, Adam 등이 있음.

SGD

  • 기본 경사 하강법 옵티마이저 클래스.
  • learning_rate 매개변수로 학습률을 지정하며 기본값은 0.01
  • momentum 매개변수에 0 이상의 값을 지정하면 모멘텀 최적화를 수행.
  • nesterov 매개변수를 True로 설정하면 네스테로프 모멘텀 최적화를 수행.

Adagrad

  • Adagrad 옵티마이저 클래스.
  • learning_rate 매개변수로 학습률을 지정하며 기본값은 0.001
  • Adagrad는 그레이디언트 제곱을 누적하여 학습률을 나눔.
  • initial_accumulator_value 매개변수에서 누적 초깃값을 지정할 수 있으며 기본값은 0.1

RMSprop

  • RMSprop 옵티마이저 클래스.
  • learning_rate 매개변수로 학습률을 지정하며 기본값은 0.001
  • Adagrad처럼 그레이디언트 제곱으로 학습률을 나누지만 최근의 그레이디언트를 사용하기 위해 지수 감소를 사용함.
  • rho 매개변수에서 감소 비율을 지정하며 기본값은 0.9

Adam

  • Adam 옵티마이저 클래스.
  • learning_rate 매개변수로 학습률을 지정하며 기본값은 0.001
  • 모멘텀 최적화에 있는 그레이디언트의 지수 감소 평균을 조절하기 위해 beta_1 매개변수가 있으며 기본값은 0.9
  • RMSprop에 있는 그레이디언트 제곱의 지수 감소 평균을 조절하기 위해 beta_2 매개변수가 있으며 기본값은 0.999

📌 드롭아웃

▪ 은닉층에 있는 뉴런의 출력을 랜덤하게 꺼서 과대적합을 막는 기법.
▪ 드롭아웃은 훈련 중에 적용되며 평가나 예측에서는 적용하지 않음.
▪ 텐서플로는 이를 자동으로 처리함.


📌 콜백

▪ 케라스 모델을 훈련하는 도중에 어떤 작업을 수행할 수 있도록 도와주는 도구.
▪ 대표적으로 최상의 모델을 자동으로 저장해 주거나 검증 점수가 더 이상 향상되지 않으면 일찍 종료할 수 있음.


📌 조기 종료

▪ 검증 점수가 더 이상 감소하지 않고 상승하여 과대적합이 일어나면 훈련을 계속 진행하지 않고 멈추는 기법.
▪ 계산 비용과 시간을 절약할 수 있음.



💡기본미션: Ch 07-1. 문제 풀고 인증샷

✅확인문제

  1. 어떤 인공 신경망의 입력 특성이 100개이고 밀집층에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 개수는 몇 개인가요?
    ① 1,000개
    ② 1,001개
    ③ 1,010개
    ④ 1,100개

답: ③ 1,010개

  1. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요?
    ① 'binary'
    ② 'sigmoid'
    ③ 'softmax'
    ④ 'relu'

답: ② 'sigmoid'

  1. 케라스 모델에서 손실 함수와 측정 지표 등을 지정하는 메서드는 무엇인가요?
    ① configure()
    ② fit()
    ③ set()
    ④ compile()

답: ④ compile()

  1. 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?
    ① 'sparse_categorical_crossentropy'
    ② 'categorical_crossentropy'
    ③ 'binary_crossentropy'
    ④ 'mean_square_error'

답: ② 'categorical_crossentropy'

💡선택미션: Ch 07-2. 문제 풀고 인증샷

✅확인문제

  1. 다음 중 모델의 add() 메서드 사용법이 올바른 것은 어떤 것인가요?
    ① model.add(keras.layers.Dense)
    ② model.add(keras.layers.Dense(10, activation='relu'))
    ③ model.add(keras.layers.Dense, 10, activation='relu')
    ④ model.add(keras.layers.Dense)(10, activation='relu')

답: ② model.add(keras.layers.Dense(10, activation='relu'))

  1. 크기가 300 X 300인 입력을 케라스 층으로 펼치려고 합니다. 다음 중 어떤 층을 사용해야 하나요?
    ① Plate
    ② Flatten
    ③ Normalize
    ④ Dense

답: ② Flatten

  1. 다음 중에서 이미지 분류를 위한 심층 신경망에 널리 사용되는 케라스의 활성화 함수는 무엇인가요?
    ① linear
    ② sigmoid
    ③ relu
    ④ tanh

답: ③ relu

  1. 다음 중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요?
    ① SGD
    ② Adagrad
    ③ RMSprop
    ④ Adam

답: ① SGD




📒혼자 공부하는 머신러닝+딥러닝 책을 참고하여 작성하였습니다.

https://www.hanbit.co.kr/store/books/look.php?p_code=B2002963743

profile
Cherish the moment :)

0개의 댓글