목록[학습 공간]/[혼공머신러닝] (23)
kang's study
LSTM과 GRU 셀¶ LSTM셀¶ 4개의 작은 셀이 큰 셀에 포함된다.¶ LSTM 신경망 훈련하기¶ In [1]: from tensorflow.keras.datasets import imdb from sklearn.model_selection import train_test_split (train_input, train_target), (test_input, test_target) = imdb.load_data( num_words=500) train_input, val_input, train_target, val_target = train_test_split( train_input, train_target, test_size=0.2, random_state=42) In [2]: from tensorfl..
텍스트를 위한 순환 신경망¶ 감정분석¶ IMDB 리뷰 데이터셋¶ NLP, 말뭉치, 토큰, 어휘 사전¶ 긍정리뷰 25,000개와 부정리뷰 25,000개¶ 각 단어마다 숫자로 분류해 놓았다¶ In [1]: from tensorflow.keras.datasets import imdb (train_input, train_target), (test_input, test_target) = imdb.load_data( num_words=500) # 500개 단어만 사용하도록 호출 In [2]: print(train_input.shape, test_input.shape) (25000,) (25000,) In [3]: print(len(train_input[0])) 218 In [4]: print(len(train_in..
합성곱 신경망의 시각화¶ 가중치 시각화¶ 이미지를 입력하고 필터를 통해 특성맵을 만든다.¶ 필터로 이미지와 관련된 부분은 가중치가 높은 영역으로 높은 출력값을 나타낸다.¶ 필터로 배경과 관련된 부분은 가중치가 낮은 영역으로 낮은 출력값을 나타낸다.¶ In [1]: from tensorflow import keras In [26]: # 코랩에서 실행하는 경우에는 다음 명령을 실행하여 best-cnn-model.h5 파일을 다운로드 # !wget https://github.com/rickiepark/hg-mldl/raw/master/best-cnn-model.h5 In [3]: model = keras.models.load_model('best-cnn-model.h5') 층의 가중치 분포¶ In [4]: m..
합성곱 신경망¶ 패션 MNIST 데이터 불러오기¶ In [1]: 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 # 채널차원이 있다고 생각한다. # 흑백이지만 차원하나를 더 추가해 3차원으로 만들어준다. train_scaled, val_scaled, train_target, val_target = train_test_split( ..
신경망 모델 훈련¶ In [31]: 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 / 255.0 train_scaled, val_scaled, train_target, val_target = train_test_split( train_scaled, train_target, test_size=0.2, random_state=42) In [32]: def model_fn(a_layer=..
심층 신경망¶ 2개의 층¶ 입력층은 생각하지 않는다.¶ 모든 신경망의 은닉층에는 항상 활성화 함수가 있다.¶ 분류 문제의 경우 클래스에 대한 확률을 출력하기 위해 활성화 함수를 사용한다.¶ 회귀는 임의의 어떤 숫자를 출력하는 문제이므로 활성화 함수를 적용할 필요가 없다. ¶ In [1]: from tensorflow import keras (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() In [2]: from sklearn.model_selection import train_test_split train_scaled = train_input / 255.0 train_scaled ..
인공 신경망 데이터 이해¶ 패션 MNIST¶ In [3]: from tensorflow import keras (train_input, train_target), (test_input, test_target) = \ keras.datasets.fashion_mnist.load_data() 훈련데이터 크기¶ In [4]: print(train_input.shape, train_target.shape) # 6만개의 샘플과 28픽셀*28픽셀로 구성된 3차원 데이터, 흑백이미지 # 타겟은 0~9까지의 10개의 클래스로 숫자를 표현 (60000, 28, 28) (60000,) 테스트데이터 크기¶ In [5]: print(test_input.shape, test_target.shape) (10000, 28, 28)..
주성분 분석 (PCA)¶ 차원 축소¶ 벡터의 차원을 줄임= 특성의 개수를 줄임¶ 차원이란? 다차원 배열에서 차원은 배열의 축 개수 1차원 배열(벡터)에서 차원은 원소의 개수 주성분 분석은 데이터가 가장 많이 퍼져있는 방향을 찾는다¶ 가장 잘 표현하는 벡터를 찾는게 주성분이다.¶ 두번 째 주성분은 수직으로 찾는다.¶ PCA 클래스¶ In [19]: # !wget https://bit.ly/fruits_300_data -O fruits_300.npy In [20]: import numpy as np fruits = np.load('fruits_300_data') fruits_2d = fruits.reshape(-1, 100*100) In [21]: from sklearn.decomposition import..
k-평균¶ KMeans 클래스¶ In [1]: # !wget https://bit.ly/fruits_300_data -O fruits_300.npy In [2]: import numpy as np fruits = np.load('fruits_300_data') # 2차원 배열로 만든다. (샘플개수, 너비×높이) fruits_2d = fruits.reshape(-1, 100*100) 모델 훈련¶ In [3]: from sklearn.cluster import KMeans km = KMeans(n_clusters = 3, random_state = 42) # 10번 수행 n_iter km.fit(fruits_2d) # 타깃이 없다 Out[3]: KMeans(n_clusters=3, random_state=4..
비지도 학습 (군집, 차원축소)¶ 타깃 값이 없다.¶ 군집 알고리즘¶ 비슷한 샘플끼리 그룹으로 모으기¶ 과일 사진 데이터 준비하기¶ In [1]: #코랩에서 리눅스 셀 명령 !wget https://bit.ly/fruits_300_data -O fruits_300.npy 'wget'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. In [1]: import numpy as np import matplotlib.pyplot as plt In [2]: # colab # fruits = np.load('fruits_300.npy') fruits = np.load('fruits_300_data') In [3]: print(fruits.shape) # 첫 번째 차원 : 300..