전체 글 477

인공지능 #8-1 | CNN 합성곱 알아보기(필터(커널), 피처 맵, 패딩, 스트라이드, 풀링)

8. 이미지를 위한 인공 신경망¶합성곱 convolution¶ 입력 데이터에서 유용한 특성만 드러나게 처리하는 것 합성곱의 동작 원리¶ 입력 데이터 전체에 가중치를 적용하는 게 아니라 일부에 가중치를 곱함 CNN Convolutional Neural Network에서는 뉴런을 filter/kernel라고 부름 필터 filter: 뉴련 개수를 표현할 때 커널 kernel: 입력에 곱하는 가중치를 의미할 때 합성곱은 2차원 데이터에도 적용할 수 있다. 입력 데이터의 왼쪽 위에서 오른쪽 맨 아래까지 이동하면서 출력을 만들어낸다 이때 Convolutional 계산을 통해 어든 출력을 Feature map 특성 맵이라고 한다. 8-1. 합성곱 신경망의 구성 요소¶ 케라스 합성곱 층 합성곱 신경망의 정의: 1개 이..

Data Science/AI 2023.03.10

인공지능 #8-0 | CNN 개념 이해하기

CNN 2012년 이미지 인식 대회에서 토론토대 교수인 제프리 힌튼의 AlexaNet이 압도적인 차이로 이김 AlexaNet은 컨볼루션 신경망인 CNN이다. CNN은 이미지를 인식하는 대표적인 신경망 모델이다. CNN은 사람의 시각 피질을 참고하여 만든 것이다. 뇌의 시각 피질은 서로 계층적으로 연결되어있다. 낮은 계층에서는 단순한 패턴을 인식하고, 높은 계층에서 이를 조합하여 복잡한 패턴으로 추상화한다. 네오코고니트론에 지도학습에 적용한 CNN을 공개함 당시 은행에서 수표의 숫자를 인식하는데 사용할 정도로 성능이 좋았음 MNIST 데이터셋은 얀 르쿤이 모델을 훈련시키기 위해 만든 것이다. 이때 CNN 모델이 가진 문제는 해상도가 크거나 복잡한 사진은 학습하지 못했다. 20년이 지난 뒤 CNN은 다시 화..

Data Science/AI 2023.03.10

인공지능 #7-3 | 딥러닝 - 드롭아웃, 콜백, Early Stopping

7. 딥러닝¶ 데이터 준비하기: 패션 MNIST In [1]: from tensorflow import keras (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() In [2]: # 데이터의 크기 # 60000개의 샘플, 각 샘플은 28*28 print(train_input.shape, train_target.shape) # 10000개의 샘플, 각 샘플은 28*28 print(test_input.shape, test_target.shape) (60000, 28, 28) (60000,) (10000, 28, 28) (10000,) In [3]: # 샘플 확인하기 import mat..

Data Science/AI 2023.03.09

[에러 해결] RuntimeError: You must compile your model before training/testing. Use `model.compile(optimizer, loss)`. 해결하기

model = keras.models.load_model("model-whole.h5") model.evaluate(val_scaled, val_target) .h5 파일에 저장한 모델을 다시 불러오려다 에러가 발생했다. 발생한 에러는 다음과 같다. WARNING:tensorflow:No training configuration found in the save file, so the model was *not* compiled. Compile it manually. --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) Cell In[54],..

Data Science/AI 2023.03.09

인공지능 #7-2 | 심층 신경망 DNN, ReLU, 옵티마이저

7. 딥러닝¶ 데이터 준비하기: 패션 MNIST In [1]: from tensorflow import keras (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz 29515/29515 [==============================] - 0s 0us/step Downloading data from https://storage.googleapis.com/tensorflow/tf-k..

Data Science/AI 2023.03.08

인공지능 #7-1 | 인공 신경망 ANN, 텐서플로, dense layer

7. 딥러닝¶ 데이터 준비하기: 패션 MNIST In [1]: from tensorflow import keras (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz 29515/29515 [==============================] - 0s 0us/step Downloading data from https://storage.googleapis.com/tensorflow/tf-k..

Data Science/AI 2023.03.08

인공지능 #6-3 | 비지도학습 - 차원 축소, PCA(주성분 분석)

6. 비지도 학습¶ 6-3. 주성분 분석 PCA으로 차원 축소하기¶ 차원, 차원 축소¶ feature 하나하나가 데이터의 차원이 된다 feature가 많으면 훈련 데이터에 쉽게 오버피팅된다 주성분 분석 Principal Component Analysis가 대표적인 차원 축소 알고리즘 PCA Principal Component Analysis¶ 널리 사용되는 차원 축소 기법 중 하나 데이터 분포를 최대한 보존하면서 데이터를 저차원으로 변환한다 기존의 변수를 조합하여 서로 연관이 없는 새로운 변수(PC, principal component)를 만들어낸다 PCA 클래스 In [23]: import numpy as np fruits = np.load("fruits_300.npy") fruits_2d = frui..

Data Science/AI 2023.03.07

인공지능 #6-2 | 비지도학습 - K Means 알고리즘, 센트로이드, 엘보우 방법

6. 비지도 학습¶ 6-2. k-means¶ K-means 알고리즘¶ 무작위로 k개 클러스터 중심을 고르기 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터로 할당시키기 클러스터의 중심을 클러스터에 속한 샘플들의 평균값으로 변경하기 클러스터 중심이 수렴할 때까지 2~3 반복하기 In [16]: # 데이터 가져오기 import numpy as np fruits = np.load("fruits_300.npy") fruits_2d = fruits.reshape(-1, 100*100) In [17]: # K-means 알고리즘 from sklearn.cluster import KMeans km = KMeans(n_clusters=3, random_state=42) km.fit(fruits_2d) c:..

Data Science/AI 2023.03.07

인공지능 #6-1 | 비지도학습 - 클러스터링, 히스토그림

6. 비지도 학습¶ 6-1. 클러스터 알고리즘¶ 클러스터링: 비슷한 샘플끼리 그룹으로 모으기 데이터 가져오기 In [7]: import numpy as np import matplotlib.pyplot as plt fruits = np.load("fruits_300.npy") print(fruits.shape) (300, 100, 100) 이미지 출력하기 In [10]: # 흑백 이미지 행렬값 print(fruits[0, 0, :]) # 흑백 이미지 출력 plt.imshow(fruits[0], cmap="gray") # 컴퓨터는 밝은색(픽셀 값이 큼)에 주의를 기울이므로 값을 반전해줌 plt.show() ## 다른 이미지 fig, axs = plt.subplots(1, 2) axs[0].imshow(fr..

Data Science/AI 2023.03.07

[에러 해결] ValueError: Cannot load file containing pickled data when allow_pickle=False 해결하기

import numpy as np import matplotlib.pyplot as plt fruits = np.load("fruits_300.npy") npy로 저장한 데이터를 불러오려다가 아래와 같은 에러가 발생했다. --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[5], line 3 1 import numpy as np 2 import matplotlib.pyplot as plt ----> 3 fruits = np.load("fruits_300.npy") 4 print(fruits.shape) File c:\Users\..

Data Science/AI 2023.03.07