생물학적 뉴런에서 영감을 받아 만든 머신러닝 알고리즘 중 하나이다.
🎉 기본 미션
Ch.07(07-1) 확인 문제 풀고, 풀이 과정 정리하기
1. 어떤 인공 신경망의 입력 특성이 100개 이고 밀집층에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 개수는 몇 개 인가요?
- 정답 ③ 1,010개
- 풀이과정
- 100개의 뉴런과 10개의 출력층 뉴런이 모두 연결되고 출력층의 뉴런마다 하나의 절편이 있기 떄문에 총 1010개의 모델 파라미터가 있다.
🔈 밀집층
가장 간단한 인공 신경망의 층이다.
- 인공 신경망에는 여러 종류의 층이 있다. 밀집층에서는 뉴런들이 모두 연결되어 있기 때문에 완전 연결 층이라고도 부른다. 특별히 출력층에 밀집층을 사용할 때는 분류하려는 클래스와 동일한 개수의 뉴런을 사용한다.
2. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진 분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요 ?
- 정답 ② sigmoid
- 풀이과정
🧱 Dense
신경망에서 가장 기본 층인 밀집층을 만드는 TensorFlow 의 클래스
- 이 층에 첫 번재 매개변수에는 뉴런의 개수를 지정한다.
- activation 매개변수에는 사용할 활성화 함수를 지정한다. 대표적으로 'sigmoid', 'softmax' 함수 가 있다. 아무것도 지정하지 않으면 활성화 함수를 사용하지 않는다.
- 케라스의 Sequential 클래스에 맨 처음 추가되는 층에는 input_shape 매개변수로 입력의 크기를 지정해야 한다.
📈 sigmoid 함수
값을 0과 1사이로 압축할 수 있다. 또한 입력값이 0.5 이상이면 1, 이하면 0을 출력하기 때문에 이진 분류 모델에 적합하다.
3. 케라스 모델에서 손실함수와 측정지표등을 지정하는 메서드는 무엇인가요?
- 정답 ④ compile()
- 풀이과정📈 compile()
모델 객체를 만든 후 훈련하기 전에 사용할 손실 함수와 측정 지표등을 지정하는 TensorFlow의 메소드이다.
loss 매개변수에 손실 함수를 지정한다.
- 이진 분류일 경우 : binary_crossentropy
- 다중 분류일 경우 : categorical_crossentropy
- 클래스 레이블이 정수일 경우 : sparse_categorical_crossentropy
- 회귀 모델일 경우 : mean_square_error
컴파일 메서드를 통해 모델의 손실함수와 측정지표를 지정해 줄 수 있다.
4. 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?
- 정답 ① 'sparse_categorical_crossentropy'
- 풀이과정🔈 원-핫 인코딩
원-핫 인코딩은 정숫값을 배열에서 해당 정수 위치의 원소만 1이고 나머지는 모두 0으로 변환한다.
- 다중 분류에서 출력층에서 만든 확률과 크로스 엔트로피 손실을 계산하기 위해서 이런 변환이 필요하다. 텐서플로에서는 'sparse_categorical_crossentropy' 손실을 지정하면 이런 변환을 수행할 필요가 없다.
📈 sparse_categorical_crossentropy
손실함수 중 하나이며 클래스 레이블이 정수일 경우 사용한다.
- 정수로 된 타깃값을 바로 크로스 엔트로피 손실을 계산하는데에 사용할 수 있다. 만일 타깃값이 원핫인코딩을 통해 0과 1의 변수로 준비되어 있다면 "categorical_crossentropy" 를 사용하면 된다.