👩‍💻LEARN : ML&Data/Book Study

[모두의 딥러닝] #4-10. 딥러닝 모델 설계하기

쟈니유 2023. 2. 15. 15:11
728x90

하하 나도 이제 딥러닝 할수있따


#4-10. 딥러닝 모델 설계하기 

 

기존에 함께 봤던 폐암 수술 환자 생존율 예측하기 딥러닝 모델을 바탕으로

지금까지 배워온 것을 정리해보자. 

 

1. 환경 준비 

 # 텐서플로의 케라스 API에서 필요한 함수들을 불러옴 
from tensorflow.keras.models import Sequential
# 데이터를 다루는 데 필요한 라이브러리를 불러옵니다.
from tensorflow.keras.layers import Dense # 데이터를 다루는 데 필요한 라이브러리를 불러옵니다.
import numpy as np
2. 데이터준비 

!git clone https://github.com/taehojo/data.git # 깃허브에 준비된 데이터를 가져옵니다.

# 수술 환자 데이터를 불러옵니다.

Data_set = np.loadtxt("./data/ThoraricSurgery3.csv", delimiter=","
X = Data_set[:,0:16] # 환자의 진찰 기록을 X로 지정합니다.
y = Data_set[:,16] # 수술 후 사망/생존 여부를 y로 지정합니다.
3. 딥러닝 모델 구조 결정 

model = Sequential() # 딥러닝 모델의 구조를 결정합니다.
model.add(Dense(30, input_dim=16, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model = Sequential 
- 딥러닝 구조를 짜고 층을 설정할 수 있도록 시퀀셜 함수를 모델로 선언 

model.add 
- 새로운 층을 만드는 것. 맨 마지막 층이 출력층이고 나머지는 모두 은닉층임 

Dense 
- 각 층의 구조를 이 함수를 통해 짜게 됨.
- 첫번째 인자가 해당 층의 노드의 수를 의미함(=가중합의 수)  
- input_dim : 입력되는 x의 수 
- activation : 활성화 함수 (은닉층에서는 relu, 출력층에서는 sigmoid사용함) 
4. 모델 실행 

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
history=model.fit(X, y, epochs=5, batch_size=16)
model. compile
- 앞에서 정한 모델을 컴퓨터가 이해할 수 있게 컴파일 하는 것 
- loss : 오차함수(손실함수) 종류 정하기 * 
- optimizer : 고급경사하강법 종류 중 선택하기 
- metrics : 모델이 컴파일 될 때 모델 수행의 결과를 나타나게 설정하는 것. accuracy는 학습셋에 대한 정확도에 기반해 출력하라는 뜻 
  ( 이 외에 loss, val_acc, val_loss등이 있음) 


model.fit
-모델을 실제로 수행 
- epoch : 학습 프로세스를 모든 샘플에 대해 실행시키는 수 
- batch_size : 샘플을 한번에 몇개씩 처리할 지 정하는 것 

✬ 오차함수 종류 

평균제곱계열
(선형회귀모델)
mean_squared_error 평균제곱오차
mean_absolute_error 평균절대오차(실제값과 예측값 차이의 절댓값 평균)
mean_absolute_percentage_error 펴균 절대 백분율 오차 
mean_squared_logarithmic_error 평균 제곱 로그 오차 
교차엔트로피 계열
(다향, 이항분류)
categorical_crossentropy 범주현 교차 엔트로피 
binary_crossentropy 이항 교차 엔트로피