과제 해결을 위한 기본개념 정리 - 딥러닝 모델 만들기
2023. 4. 26. 12:29ㆍ교외활동/데이터 크리에이터 캠프 2022
반응형
# 간단한 모델링
model = Sequential()
model.add(Dense(30, input_dim=17, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
- 코드 설명
- model = Sequential()
- model을 쉽게 만들기 위한 케라스에서 제공되는 함수
- model.add()
- 층을 하나하나 만들어갈 수 있는 함수
- model.add(Dense(~~))
- Dense를 통해 입출력층, 은닉층을 만들 수 있음
- Dense(30, input_dim=17, activation=’relu’)
- 30은 만들 노드의 수
- input_dim은 입력 데이터에서 몇개의 값을 가져올 것인지
- activation은 활성화 함수를 어떤 것을 사용할지
- 활성화 함수는 다음 층으로 값을 어떻게 넘길 것인지 결정하는 역할을 함
- Dense(1, activation=’sigmoid’)
- 노드를 하나만 만든다는 것은 주로 출력층에서 이용
- 최종 연산 시 사용할 활성화 함수는 시그모이드 함수
- model = Sequential()
# 모델 컴파일
model.compile(loss='mean_squared_error',
optimizer='adam', metrics='accuracy')
- 코드 설명
- 모델이 효과적으로 구현될 수 있도록 여러가지 환경을 설정해주며 컴파일 하는 과정
- model.compile(~~)
- 모델을 컴파일 하는 함수
- compile(loss=’’, optimizer=’’, metrics=’~~’)
- loss는 오차함수를 설정해줌
- 교차 엔트로피 계열 함수의 경우 출력값에 로그를 취해 오차가 커지면 수렴속도가 빨라지고, 오차가 작아지면 수렴속도가 감소하게끔 만들어줌
- optimizer는 최적화 함수를 고르는 것
- 최적화 함수란 오차를 최소한으로 줄여 원하는 값이 나오게끔 해주는 함수
- metrics는 모델이 컴파일 될 때 모델 수행 결과를 나타내게끔 하는 것으로 정확도를 측정하기 위해 사용되는 테스트 샘플을 학습 과정에서 제외시킴으로써 과적합 문제를 방지할 수 있음
# 모델 실행하기
model.fit(X, Y, epochs=100, batch_size=10)
- 코드 설명
- model.fit(~~)
- 모델에 데이터를 넣어 학습시키는 코드
- fit(X, Y, epochs=~, batch_size~)
- 학습할 속성(X)과 클래스 데이터셋(Y)를 입력해줌
- epochs는 모든 샘플(instance, 행데이터)에 대해 한번 실행되는 것을 1 epoch라고 하며, 100 epochs는 각 샘플이 처음부터 끝까지 100번 이용하라는 의미
- batch_size는 샘플을 한번에 얼마나 끊어서 넣을 것인지 정하는 것으로, 너무 크면 학습 속도가 느려지고, 너무 작으면 각 실행값의 편차가 생겨 전체 결과값이 불안정해질 수 있음
- 컴퓨터 메모리가 감당할만큼 batch_size를 정해줘야 함
- batch_size=10인 경우 샘플을 10개씩 끊어서 넣어주는 것
- model.fit(~~)
반응형