딥러닝 24

텐서플로우 파라미터 : EarilyStopping 라이브러리 , callback

에포크 히스토리를 차트로 확인을 해보니 수백번정도 이후에는 거의 모델이 향상하지 않는 모습이 보인다. 이런경우 시간의 효율을 높이기 위해 call back을 활용해 지정된 에포크 횟수 동안 성능향상이 없으면 자동으로 훈련을 멈추고 결과를 내주는 함수를 만들어서 활용하면 된다. callback이란 보통 일반적으로 내가 쉬프트 엔터처서 함수를 실행시킴 이건 콜백이 아님, 내가 만든 함수를, 프레임워크가 실행시켜주는 것을 의미 tf.keras.callbacks.EarlyStopping( 조건) early_stop = tf.keras.callbacks.EarlyStopping(monitor = 'val_loss', patience= 10) val_loss를 모니터하면서 10번의 에포크동안 성능 향상이 없을 경우..

카테고리 없음 2022.12.28

딥러닝 파라미터 : validation_split

밸리데이션이란, 에포크가 한번 끝날때 마다, 학습에 사용하지 않은 데이터로 시험을 본다는 의미 테스트란, 인공지능이 완전히 학습이 다 끝난 상태에서 평가하는것을 테스트라고 하고, 밸리데이션은, 학습중에, 에포크 끝날때 마다 평가하는 것을 말한다. 즉 validation_split이란 원래 주어진 데이터셋을 특정 비율로 나워서 트레이닝셋,테스트셋 으로 활용하여 딥러닝의 효율을 극대화 시킬주 있는 파라미터 이다. 밸리데이션 스플릿 0.2란 의미는 내가 학습시킬 다음 X_train 데이터와 y_train데이터를 0.2계수 만큼의 데이터로 미리 테스트를 봐서 정확도를 높인다는것 validation_split 을 사용하면 val_loss항목이 새롭게 생긴다

텐서플로우 인공지능 컴파일중 learning rate를 옵티마이저에서 셋팅하는 코드

인공지능 설계에서 그레디언트 디센트 알고리즘을 이용해 최저값을 찾아나가는 와중 기울기에 적절한 값을 넣어줘서 효과적으로 계산을 해야하는데 이때 사용하는 값이 learning rate다 러닝레이트값이 정상 범위를 벗어난경우 최적의 학습결과를 지나처 버릴수 있기때문에 러닝레이트를 알맞게 세팅해줘야한다. model.compile(optimizer = tf.keras.optimizers.적절한함수(learning_rate=n)) 컴파일 옵티마이저 파라미터 안에 케라스 라이브러리를 이용하여 직접 러닝레이트값을 줄 수 있다.

tensorflow legression 유형 모델링 하기

데이터 확인: 목표 :성별 나이 연봉 카드 빚 자산으로 차량 가격 예측 인공지능 개발 1.nan데이터확인 2.X,y데이터 분리 3.분리된 X데이터에서 인코딩하기 4.피쳐스케일링 하기 분리된 X와y의 데이터의 범위가 완전 다르기 때문에 피쳐스케일링을 해줘야 하는데 이때 두개의 범위가 다다르니까 두개의 피쳐스케일러를 준비를 해줘야 한다. scaler_X = MinMaxScaler() X용 scaler_y = MinMaxScaler() y용 X = scaler_X.fit_transform(X.values) y.values.reshape(500,1) y_scaled = scaler_y.fit_transform(y.values.reshape(500,1)) y는 시리즈 이기때문에 values로 바꿔준다음 진행 5...

딥러닝 하이퍼 파라미터 용어: optimizer 와 손실함수(loss function)

Loss Function(손실함수) 손실 함수란 실제값과 예측값의 차이(loss, cost)를 수치화해주는 함수이다. 오차가 클수록 손실 함수의 값이 크고, 오차가 작을수록 손실 함수의 값이 작아진다. 손실 함수의 값을 최소화 하는것이 중요. binary_crossentropy 2개의 분류의 문제 sparse_categorical_crossentropy 3개이상의 분류에서 레이블 인코딩 일때(정수로 나옴) categorical_crossentropy 3개이상의 분류의 문제, 원핫 인코딩 OPTIMIZER 옵티마이저는 손실함수의 값을 최소화 하기위해 가는 여정을 optimization 즉 최적화라고 하는데 이걸 수행하는 알고리즘을 의미한다 디폴트는 gd이며 최적의 가중치를 찾는 방법이라고 생각하면된다 Me..

딥러닝 하이퍼파라미터 용어 : Dense/units/activation/input_shape

Dense 모델안에 들어가는 레이어를 표현 (레이어 한줄) , 뉴런의 입력과 출력을 연결해주는 역할 units = 노드 숫자 activation(활성화함수)= 받은 가중치(웨이트)를 결과값으로 바꿔주는 함수 https://seonggongstory.tistory.com/127 딥러닝 하이퍼 파라미터 용어 : activation Functions (수정) 액티베이션 활성화 함수: 딥러닝 네트워크에서 노드에 입력된 값들을 비선형 함수에 통과시킨 후 다음 레이어로 전달하는데, 이 때 사용하는 함수를 활성화 함수(Activation Function)라고 한다. 선형 seonggongstory.tistory.com input_shape = 입력 뉴런의 수 ,처음 들어갈 데이터 컬럼갯수 (튜플이기때문에 콤마로 표현..

GridSearch를 이용한 최적의 하이퍼 파라미터 찾기

from keras.wrappers.scikit_learn import KerasClassifier from sklearn.model_selection import GridSearchCV from keras.models import Sequential from keras.layers import Dense 기본 import문 그리드 서치의 기본은 1. 모델링을 함수로 만들기 2.그리드 서치용 클래서파이어 만들기 model = KerasClassifier(build_fn= 인공지능 함수) 그리드 서치로 찾을 여러 조합 함수로 지정 my_param = {'batch_size' : [10,20,32] , 'epochs' : [20,30,50], 'optimizer' : [옵티마이저 종류] } grid = Gr..

인공지능 모델링 함수 만들기

def build_model(optimizer): #모델링 model = Sequential() model.add( Dense(units = 6 , activation = 'relu' , input_shape=(11,) ) ) model.add(Dense(units = 8 , activation = 'relu' )) model.add( Dense(units=1 , activation = 'sigmoid' )) model.compile(optimizer = optimizer, loss = 'binary_crossentropy' ,metrics= [ 'accuracy' ] ) return model 컴파일에 옵티마이저 파라미터에 저위에있는 빌드_모델(옵티마이저)에 괄호안에있는 옵티마이저 라는 변수를 옵티마이..

tensorflow : Logistic Classification유형 모델링 하기

기본 필요 import문 import numpy as np import pandas as pd 머신러닝과 같은 순서를 가졌다고 생각하면 된다. from sklearn.preprocessing import OneHotEncoder , LabelEncoder from sklearn.compose import ColumnTransformer 1.nan데이터 확인 2.X,y데이터 분리 3.분리된 X데이터에서 인코딩하기 2개는 레이블 3개이상은 원핫 4.피쳐스케일링 하기 딥러닝은 무조건 피처스케일링을 해줘야 한다. from sklearn.preprocessing import MinMaxScaler 5.트레이닝 셋 나누기 from sklearn.model_selection import train_test_split..