입력층, 은닉층, 출력층
▶ 첫 번째 Dense는 입력층과 첫 번째 은닉층을, 두 번째 Dense는 출력층을 의미
▶ 이항 분류 문제이므로 오차 함수는 binary_crossentropy를 사용하고, 최적화 함수로 adam을 사용함
▶ softmax : 총합이 1인 형태로 바꿔서 계산해 주는 함수
→ 합계가 1인 형태로 변환하면 큰 값이 두드러지게 나타나고 작은 값은 더 작아진다.
이 값이 교차 엔트로피를 지나 [1, 0, 0]으로 변하게 되면 우리가 원하는 원-핫 인코딩 값 (하나만 1이고 나머지는 모두 0인 형태)으로 전환된다
▶ Sequential( ) 함수를 model로 선언해 놓고 model.add( )라는 라인을 추가하면 새로운 층이 만들어진다.
▶ Dense는 층의 구조를 결정
▶ input_dim : 입력 데이터의 개수
▶ keras는 입력층을 따로 만드는 것이 아니라, 첫번째 은닉층에 input_dim을 적어서 첫 번째 Dense가 은닉층+입력층의 역할을 겸한다.
▶ activation 부분에 우리가 원하는 활성화 함수를 적어 주면 됨
▶ model.compile : 앞서 지정한 모델이 효과적으로 구현될 수 있게 여러 가지 환경 설정 및 컴파일
▶ 다중 클래스(3종류 이상)를 분류할 경우 categorical_ crossentropy를 쓴다.
▶1 epoch : 학습 프로세스가 모든 샘플에 대해 한 번 실행되는 것
▶batch_size : 샘플을 한 번에 몇 개씩 처리할지 정하는 부분
batch_size=10은 전체 470개 샘플을 10개씩 끊어서 집어넣으라는 뜻
batch_size가 너무 크면 학습 속도가 느려지고, 너무 작으면 각 실행값마다 편차가 생겨서 결과값이 불안정해진다.
(자신의 컴퓨터 메모리가 감당할 만큼의 batch_size를 설정해 주는 것이 좋다.)