Chapter 07-1
인공 신경망
- 인공 신경망 (artificial neural network, ANN)
뉴런에서 영감 받은 머신러닝 알고리즘
이미지, 음성, 텍스트 분야에서 뛰어난 성능을 발휘하고 딥러닝이라고도 한다.
케라스이 Sequential 클래스 사용
출력층(output layer): z값을 계산하고 이를 바탕으로 클래스를 예측, 신경망의 최종 값을 만든다.
뉴런(neuron): z값을 계산하는 단위, 유닛이라고 부르기도 한다.
입력층: x값이고 픽셀값 자체이기 때문에 특별한 계산을 수행하지 않는다.
밀집층(dense layer): 가장 기본이 되는 층이며 픽셀과 뉴런이 모두 연결된 선이다. 완전 연결층이라고도 부른다.
- 텐서플로우
구글이 공개한 딥러닝 라이브러리
CPU와 GPU를 사용해서 인공 신경망 모델을 효율적으로 훈련하고 다양한 도구를 제공한다.
- 활성화 함수(activation function)
뉴런의 선형 방정식 계산 결과에 적용되는 함수 ex) 소프트맥스
- 원-핫 인코딩(one-hot encoding)
타깃값을 해당 클래스만 1이고 나머지는 모두 0인 배열로 만드는 것
- 함수 모음
compile(): 훈련 전ㅁ 손실 함수와 측정 지표 등을 지정하는 메소
evaluate(): 케라스에서 모델 성능 평가 메소드
코랩 실습 화면 (일부)
기본 미션
Ch.07(07-1) 확인 문제 풀고, 풀이 과정 정리하기
1. 어떤 인공 신경망의 입력 특성이 100개이고 밀집층에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 개수는 몇 개인가요?
정답: 1010개
풀이: 특성 100개와 뉴런 10개를 곱한 후, 뉴런마다 1개의 절편이 있으니 10 더해서 총 1010개의 모델 파라미터가 있다.
2. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진 분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요?
정답: sigmoid 함수
풀이: 이진 분류는 뉴런이 1개이고 선형 방정식이다. 선형 방정식의 결과를 확률로 바꾸려면 sigmoid 함수 사용해야 한다.
3. 케라스 모델에서 손실 함수와 측정 지표를 지정하는 메서드는 무엇인가요?
정답: compile()
풀이: 이것은 그냥 외우는거라 패스
4. 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은무엇인가요?
정답: sparse_categorical_crossentropy
풀이: 다중 분류일 경우는 sparse_categorical_crossentropy 매개변수 사용해야 한다.
Chapter 07-2
심층 신경망
- 심층 신경망(deep neural)
2개 이상의 층을 포함한 신경망, 딥러닝을 같은 의미로 사용
Sequential 클래스 사용
모델 만들 때 출력층을 가장 마지막에 두어야 한다.
층을 추가할 때는 add() 메서드를 사용한다
은닉층(hidden layer): 입력층과 출력층 사이에 있는 모든 층
코랩 실습 화면 (일부)
- 렐루 함수(ReLU)
활성화 함수이며 입력이 양수일 경우 입력을 통과시키고 음수일 경우 0으로 만든다.
이미지 분류 모델의 은닉층에 많이 사용하는 함수이다.
코랩 실습 화면 (일부)
- 옵티마이저(optimizer)
케라스에서 다양한 경사 하강법 알고리즘이며 신경망의 가중치와 절편을 학습하기 위한 알고리즘이다.
ex) SGD, 네스테로프 모멘텀, RMSprop, Adam
- 함수 모음
add(): Sequential 클래스에서 층을 추가하는 메소드
선택 미션
Ch.07(07-2) 확인 문제 풀고, 풀이 과정 정리하기
1. 다음 중 모델의 add() 메서드 사용법이 올바른 것은 어떤 것인가요?
정답: model.add(keras.layers.Dense(10, activation='relu'))
풀이: Dense 사용할 때 괄호열어서 값 전달해야 한다.
2. 크기가 300 * 300인 입력을 케라스 층으로 펼치려고 합니다. 다음 중 어떤 층을 사용해야 하나요?
정답: Flatten
풀이: 입력의 차원이 일렬인 클래스는 Flatten 클래스
3. 다음 중에서 이미지 분류를 위한 심층 신경망에 널리 사용되는 케라스의 활성화 함수는 무엇인가요?
정답: relu
풀이: 이미지 처리에 많이 사용되는 활성화 함수는 relu 함수
4. 다음 중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요?
정답: SGD
풀이: SGD는 일정한 학습률 사용
Chapter 07-3
신경망 모델 훈련
- 드롭아웃(dropout)
훈련 과정에서 층에 있는 일부 뉴런을 랜덤하게 꺼서 과대적합을 막는 기법이다.
케라스의 Dropout 클래스 사용
코랩 실습 화면 (일부)
- 콜백(callback)
훈련 과정 중간에 어떤 작업을 수행할 수 있게 하는 객체
케라스의 callbacks 패키지 사용
조기 종료: 과대적합이 시작되기 전에 훈련을 미리 중지하는 것
코랩 실습 화면 (일부)
- 함수 모음
save_weights(): 훈련된 모델의 파라미터를 저장하는 메서드
save(): 모델 구조와 모델 파라미터를 함께 저장하는 메서드
load_weights(): 모든 층의 가중치와 절편을 파일에 읽는다.
'Data Analysis > ML & DL' 카테고리의 다른 글
[ML] 인공지능과 기계학습 (0) | 2024.03.24 |
---|---|
혼자 공부하는 머신러닝+딥러닝 / 혼공 학습단 회고 (0) | 2023.08.21 |
혼자 공부하는 머신러닝+딥러닝 / Chapter 06 비지도 학습 (0) | 2023.08.13 |
혼자 공부하는 머신러닝+딥러닝 / Chapter 05 트리 알고리즘 (0) | 2023.07.30 |
혼자 공부하는 머신러닝+딥러닝 / Chapter 04 다양한 분류 알고리즘 (0) | 2023.07.23 |