본문 바로가기

728x90
반응형

딥러닝

(12)
[딥러닝/DL]6. 합성곱 신경망의 시각화 이번에는 이전 글에서 합성곱 층이 이미지에서 어떤 것을 학습했는지 알아보기 위해 합성곱 층의 가중치와 특성 맵을 그림으로 시각화해 보겠다. 이 과정을 통해 합성곱 신경망의 동작 원리에 대한 통찰을 키울 수 있다. 가중치 시각화 합성곱 층은 여러 개의 필터(커널)을 사용해 이미지의 특징을 학습한다. 각 필터는 가중치와 절편을 가진다. 가중치 : 어떤 특징을 크게 두드러지게 표현함. 절편 : 시각적으로 의미 없음 이제 모델이 어떤 가중치를 학습했는지 확인하기 위해 체크포인트 파일을 읽어 들이겠다. model = keras.models.load_model('best-cnn-model.h5') model.layers layers 속성을 통해 모델의 층을 볼 수 있다. 첫번쨰 합성곱의 가중치를 조사해보자. 가중치..
[딥러닝/DL]5. 합성곱 신경망을 사용한 이미지 분류 이전에 Pupbani는 합성곱과 풀링이 무엇인지, 합성곱 신경망 층과 풀링 층을 만드는 법을 배웠었다. 이제 Pupbani는 실제 합성곱 신경망 모델을 만들어 보려고 한다. 먼저 데이터를 준비하자. from tensorflow import keras from sklearn.model_selection import train_test_split (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() train_scaled = train_input.reshape(-1, 28, 28, 1) / 255.0 train_scaled, val_scaled, train_target, val_targe..
[딥러닝/DL]4. 합성곱 신경망 - 구성요소 Pupbani는 완성된 딥러닝 모델을 들고 마케팅 팀장을 찾아갔다. 성능이 87% 정도로 높아졌다고 보고 했지만 팀장의 반응은 시큰둥했다. 팀장은 "성능이 더 좋아질 수는 없을 까요?"라고 말했고 Pupbani는 당황했다. 지나가던 박선배가 "합성 곱신경망을 써보는 건 어때? 이미지 분류에 좋다던데?"라고 말했고 Pupbani는 알겠다고 하고 모델을 만들러 달려갔다. 합성곱 합성곱(convolution)이란 마치 입력 데이터에 도장을 찍어 유용한 특성만 드러나게 하는 것으로 비유할 수 있다. 합성곱의 동장 방식을 알아보자. 3개의 특성에 가중치를 곱하고 절편을 더해 1개의 출력을 만든다. 1칸을 이동해 위에서 했던 방식 그대로 1개의 출력을 만든다. 이 것을 반복하면 10개의 특성이 8개의 출력이 된다...
[딥러닝/DL]3. 신경망 모델 훈련 이번 글에서는 케라스 API를 사용하여 딥러닝 모델을 훈련하는데 필요한 다양한 도구들을 알아보자. 손실 곡선 fit() 메서드를 사용하여 모델을 훈련하면 출력의 마지막에 다음과 같은 메시지가 보인다. 노트북의 코드 셀은 print() 명령을 사용하지 않아도 fit() 메서드의 마지막 라인의 실행 결과를 자동으로 출력한다. 즉 이 메시지는 fit() 메서드의 실행 결과를 출력한 것이다. fit() 메서드는 History 클래스 객체를 반환한다. History 클래스 객체는 훈련 과정에서 계산한 지표가 저장되어 있다. 손실, 정확도 값이 저장 이 값을 사용하여 그래프를 그려보자. 먼저 데이터(MNIST)를 불러온다. from tensorflow import keras from sklearn.model_sel..
[딥러닝/DL]2. 심층 신경망 Pupbani는 완성된 모델을 가지고 마케팅 팀장에게 찾아갔다. 마케팅 팀장은 성능이 조금더 좋았으면 좋겠다고 하였다. 그래서 Pupbani는 층을 더 추가하여 성능을 올려보겠다고 하였다. 여러개의 층 먼저 사용할 데이터를 가져와보겠다. # MNIST 데이터 가져오기 from tensorflow import keras (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() # 데이터 정규화 및 1차원 배열로 변경 train_scaled = train_input / 255.0 train_scaled = train_scaled.reshape(-1, 28*28) # 훈련 세트, 검증 세트로 ..

728x90
반응형