인공지능 26

CNN(Convolutional Neural Network) Pooling

https://seonggongstory.tistory.com/151 CNN(Convolutional Neural Network) 컨볼루션 CNN이란 CNN은 이미지(영상)를 분석하기 위한 패턴을 찾아 이를 직접 학습하고, 학습한 패턴을 이용하여 이미지를 분류한다. CNN은 Convolution Layer, Pooling Layer(Sub Sampling), Fully Connected Layer 를 사용하여 seonggongstory.tistory.com pooling이란 컨볼루션을 통해 나온 피처맵의 크기를 다시 리사이징하여 새로운 레이어를 도출해내는것을 의미한다 pooling에는 최댓값을 뽑아내는 max pooling, 평균값을 뽑아내는 mean pooling등 다양한 종류가 있다. 위사진은 max..

CNN(Convolutional Neural Network) 컨볼루션

CNN이란 CNN은 이미지(영상)를 분석하기 위한 패턴을 찾아 이를 직접 학습하고, 학습한 패턴을 이용하여 이미지를 분류한다. CNN은 Convolution Layer, Pooling Layer(Sub Sampling), Fully Connected Layer 를 사용하여 사람의 시각처리방식을 모방한 딥러닝 학습 모델이며, 이미지(영상) 분류에 적합한 딥러닝 모델이다. 컨볼루션이란 이미지의 특징을 추출하고 추출한 특징을 피처맵으로 나타내주는 공식 인풋 이미지 커널,필터,피처디텍터 피처맵 (1*0)+(0*1)+(1*0)+(1*1)+(0*0)+(0*-1)+(0*0)+(1*1)+(1*0)=2 쉽게 인풋에서 피처맵까지의 과정이라고 생각하면된다

딥러닝 하이퍼 파라미터 용어 : validation_data란

기존 모델링 학습중 epoch시 마다 테스트를 하는 validation 데이터를 처리할때 train데이터의 일부를 활용하는 방법을 사용을 했다(validation_split) validation_data는 단순학습이 아니고 따로 평가를 위해 데이터를 준비하는 경우를 의미하며 정확도를 올리는 과정이다. history 기능을 사용해 단순히 train데이터의 loss와 accuracy만 가지고 판단하기에는 overfitting의 문제를 거를 수 없다. 따라서 별도의 validation_data의 loss와 accuracy를 함께 확인함으로써 실제 test 데이터에서의 예측을 보다 정확히 할 수 있다. epoch_history = model.fit(X_train , y_train , epochs=10 ,vali..

에포크 학습 데이터/밸리데이션데이터와 오버피팅

def build_model(): model = Sequential() model.add( Flatten() ) model.add( Dense(128, 'relu') ) model.add( Dense(64, 'relu') ) model.add( Dense(10, 'softmax')) model.compile('adam', 'sparse_categorical_crossentropy', ['accuracy']) return model model = build_model() epoch_history = model.fit(X_train, y_train, epochs= 30 , validation_split= 0.2 ) 모델링을 하면서 에포크의 숫자를 너무 과하게 할경우 epoch_history.history.k..

딥러닝 파라미터 : 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)) 컴파일 옵티마이저 파라미터 안에 케라스 라이브러리를 이용하여 직접 러닝레이트값을 줄 수 있다.

딥러닝 하이퍼 파라미터 용어: 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 = 입력 뉴런의 수 ,처음 들어갈 데이터 컬럼갯수 (튜플이기때문에 콤마로 표현..

딥러닝 기초 : Dummy variable trap

범주형 데이터는 ‘A’, ‘B’, ‘C’와 같이 종류를 표시하는 데이터를 말한다. 카테고리(category( 데이터라고도 부른다. 다음과 같은 데이터는 모두 범주형 데이터의 예다. 더미변수(dummy variable)는 0 또는 1만 가지는 값으로 어떤 특징이 존재하는가 존재하지 않는가를 표시한다. 다음과 같은 명칭으로도 불린다. 결국 더미 베리어블 트랩은 존재하는가 존재하지 않는가를 나눌때 필요없는 컬럼을 제거하는 행위를 의미 이와 같은 데이터에서 레이블 인코딩을 통해 숫자로 변환 하면 결과는 프랑스 독일 스페인 1 0 0 0 1 0 0 0 1 로 출력이 된다 이때 첫번째 열이 없어도 충분히 데이터는 프랑스를 인식을 할수 있다는것이다.(인코더로 이미 프랑스의 데이터를 학습) 독일 스페인 0 1 → 스페..