▪ 생물학적 뉴런에서 영감을 받아 만든 머신러닝 알고리즘.
▪ 딥러닝이라고도 부름.
▪ 구글이 만든 딥러닝 라이브러리.
▪ 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
▪ 은닉층에 있는 뉴런의 출력을 랜덤하게 꺼서 과대적합을 막는 기법.
▪ 드롭아웃은 훈련 중에 적용되며 평가나 예측에서는 적용하지 않음.
▪ 텐서플로는 이를 자동으로 처리함.
▪ 케라스 모델을 훈련하는 도중에 어떤 작업을 수행할 수 있도록 도와주는 도구.
▪ 대표적으로 최상의 모델을 자동으로 저장해 주거나 검증 점수가 더 이상 향상되지 않으면 일찍 종료할 수 있음.
▪ 검증 점수가 더 이상 감소하지 않고 상승하여 과대적합이 일어나면 훈련을 계속 진행하지 않고 멈추는 기법.
▪ 계산 비용과 시간을 절약할 수 있음.
- 어떤 인공 신경망의 입력 특성이 100개이고 밀집층에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 개수는 몇 개인가요?
① 1,000개
② 1,001개
③ 1,010개
④ 1,100개
답: ③ 1,010개
- 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요?
① 'binary'
② 'sigmoid'
③ 'softmax'
④ 'relu'
답: ② 'sigmoid'
- 케라스 모델에서 손실 함수와 측정 지표 등을 지정하는 메서드는 무엇인가요?
① configure()
② fit()
③ set()
④ compile()
답: ④ compile()
- 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?
① 'sparse_categorical_crossentropy'
② 'categorical_crossentropy'
③ 'binary_crossentropy'
④ 'mean_square_error'
답: ② 'categorical_crossentropy'
- 다음 중 모델의 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'))
- 크기가 300 X 300인 입력을 케라스 층으로 펼치려고 합니다. 다음 중 어떤 층을 사용해야 하나요?
① Plate
② Flatten
③ Normalize
④ Dense
답: ② Flatten
- 다음 중에서 이미지 분류를 위한 심층 신경망에 널리 사용되는 케라스의 활성화 함수는 무엇인가요?
① linear
② sigmoid
③ relu
④ tanh
답: ③ relu
- 다음 중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요?
① SGD
② Adagrad
③ RMSprop
④ Adam
답: ① SGD
📒혼자 공부하는 머신러닝+딥러닝 책을 참고하여 작성하였습니다.
https://www.hanbit.co.kr/store/books/look.php?p_code=B2002963743