본문 바로가기

MACHINE | DEEP LEARNING45

[AI] 딥러닝 compile, loss(손실함수) 값 설정 _ 분류문제, 수치문제 분류 문제 Loss 셋팅 분류의 Loss 함수는 2가지로 나뉜다 1. 2개로 분류하는 문제에서는 loss = ' binary_crossentropy ' 2. 3개 이상으로 분류하는 문제에서는 loss = ' sparse_categorical_crossentropy ' # 2개로 분류 model.compile( optimizer= 'adam', loss= 'binary_crossentropy', metrics= [ 'accuracy' ]) # 3개 이상으로 분류 model.compile( optimizer= 'adam', loss= 'sparse_categorical_crossentropy', metrics= [ 'accuracy' ]) 수치 예측 문제 Loss 셋팅 수치의 Loss 함수의 종류는 다양하지.. 2024. 4. 18.
[AI] 딥러닝 이미지 인식 _ 프래튼 라이브러리(Flatten Library), 소프트맥스(activation= 'softmax') 함수 만드는 라이브러리 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Flatten 프래튼 라이브러리 from types import MethodWrapperType 모델을 만드는 함수를 만들때, 이미지의 가로 세로를 전부 일렬로 만들어 인풋레이어에 지정 해준다 - Flatten() 사용 : 이미지 인풋레이어의 갯수는 행*열 이다 - 일렬로 만들다보면 위치에 문제가 생길 수도 있다 그래서 모양대로 아키텍처를 만들기 위해 CNN(특징값 보존)을 개발했다 def build_model(): model = Sequential() model.add(Flatten()) model.add(Dense(12.. 2024. 4. 18.
[AI] 딥러닝 오버피팅 되는 것을 방지하기 위한 EarlyStopping, Callback 텐서플로우 EarlyStopping, Callback Callback : 내가 만든 함수를 프레임워크가 실행시켜주는 것이다 EarlyStopping : 지정된 에포크 횟수동안 성능 향상이 없으면 자동으로 훈련이 멈춘다 비어있는 인공지능을 만들고 코드를 작성해주면 된다 # 비어있는 인공지능 model = build_model() # patience를 10으로 설정하면, 10번의 에포크동안 성능향상이 없으면, 학습을 끝내는 것이다 early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=10) # 학습할때 callbacks을 입력 epoch_history = model.fit(X_train, y_train, epochs=100000.. 2024. 4. 17.
[AI] 딥러닝 인공지능 학습 중에 평가하기 validation validation 이란? : 에포크가 한번 끝날때 마다 학습에 사용하지 않은 데이터로 시험 보는 것을 말한다 ** 테스트 = 인공지능이 완전히 학습이 다 끝난 상태에서 평가 ** 벨리데이션 = 학습 중에 (에포크 하나가 끝날때마다) 평가 인공지능 학습(fit) 시킬때 파라미터로 넣어서 지정해준다 - validation_split= 사용 _ 학습할때 학습 데이터의 0.n 은 테스트 용으로 쓰겠다고 지정하는 것이다 import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense def build_model() : model = Sequential() model.add(D.. 2024. 4. 17.
[AI] 딥러닝 epochs history 모델의 훈련 과정 시각화 _차트 epoch_history : 객체에 저장된 통계치를 사용해 모델의 훈련 과정을 시각화할 수 있다 # 학습시킬때 변수에 저장하여 학습시킨다 epochs_history = model.fit(X_train, y_train, batch_size= 10, epochs= 100) # 저장된 변수의 히스토리는 딕트로 나온다 epochs_history.history import matplotlib.pyplot as plt # 차트로 나타내기 (위에서 확인한 history의 키값 입력) plt.plot(np.arange(1, 100+1), epochs_history.history['loss']) plt.xlabel('# epochs') plt.ylabel('Loss') plt.show() 2024. 4. 17.
[AI] 딥러닝 미분 기울기의 이동 보폭 optimizer learning rate 셋팅 텐서플로우 옵티마이저 런닝레이트(학습률) 셋팅하기 : learning rate란 미분 기울기의 이동 보폭(step) 이다 : 숫자가 적을수록 파라미터의 오차를 줄이는 숫자가 조금씩 내려간다 : 에포크 와 마찬가지로 Learning rate의 값이 적합하지 않을 경우, Overflow가 발생할 수 있다 - 모델 컴파일 할때 원래는 옵티마이져를 문자열로 불러왔지만, 함수로 불러오면 런닝레이트 파라미터를 직접 지정 할 수 있다 런닝레이트 파라미터의 디폴트 값은 0.001이다 def build_model() : model = Sequential() model.add(Dense(64, 'relu', input_shape=(X_train.shape[1],))) model.add(Dense(64, 'relu')) m.. 2024. 4. 17.