Machine Learning 54

2. 머신러닝 프로젝트 - 큰 그림 그리기

진행할 주요 단계는 다음과 같다. 성능 측정 지표 선택 회귀 문제의 전형적인 성능 지표는 평균제곱근 오차(root mean square error (RMSE)) 이다. RMSE가 일반적으로 회귀 문제에 선호되는 성능 측정 방법이지만 경우에 따라 다른 함수를 사용할 수도 있다. 예를 들어 이상치로 보이는 구역이 많다고 가정하다. 이런 경우에는 평균 절대 오차(mean absolute error)를 사용한다. RMSE 와 MAE 모두 예측값의 벡타와 타깃값의 벡터 사이의 거리를 재는 방법이다. 거리 측정에는 여러가지 방법 (또는 노름norm)이 가능하다.

1. 한눈에 보는 머신러닝

1. 머신러닝이란? 머신러닝은 데이터로부터 학습할 수 있는 시스템을 만드는 것이다. 학습이란 어떤 작업에서 주어진 성능 지표가 더 나아지는 것을 의미한다. 2. 레이블된 훈련 세트란? 각 샘플에 대해 원하는 정답(레이블)을 담고 있는 훈련 세트이다. 3. 가장 널리 사용되는 지도 학습 작업 두 가지 회귀, 분류 4. 보편적인 비지도 학습 작업 네 가지 군집, 시각화, 차원 축소, 연관 규칙 학습 5. 사전 정보가 없는 여러 지형에서 로봇을 걸어가게 하려면 어떤 종류의 머신러닝 알고리즘을 사용할까? 알려지지 않은 지형을 탐험하는 로봇을 학습시키는 가장 좋은 방법은 강화학습이다. 6. 고객을 여러 그룹으로 분할하려면 어떤 알고리즘을 사용해야 할까? 만약 그룹을 어떻게 정의할지 모른다면 비슷한 고객끼리 군집으..

[8-3] 합성곱 신경망의 시각화(2)

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝을 공부하고 정리한것 입니다. 특성 맵 시각화 케라스로 패션 MNIST 데이터셋을 읽은 후 훈련 세트에 있는 첫 번째 샘플을 그려 보자. (train_input,train_target),(test_input,test_target) = keras.datasets.fashion_mnist.load_data() plt.imshow(train_input[0],cmap='gray_r') plt.show() 앵클 부츠이다. 이 샘플을 conv_acti 모델에 주입하여 Conv2D층이 만드는 특성 맵을 출력해 보자. 앞에서도 설명했지만 predict() 메서드는 항상 입력의 첫 번째 차원이 배치 차원일 것으로 기대한다. 하나의 샘플을 전달하더라도 꼭 첫 번째 차원을 유지해..

[8-3] 합성곱 신경망의 시각화(1)

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝을 공부하고 정리한것 입니다. 이번 시간에는 합성곱 층이 이미지에서 어떤 것을 학습했는지 알아보기 위해 합성곱 층의 가중치와 특성 맵을 그림으로 시각화해 보겠다. 이를 통해 합성곱 신경망의 동작 원리에 대한 통찰을 키울 수 있다. 가중치 시각화 합성곱 층은 여러 개의 필터를 사용해 이미지에서 특징을 학습한다. 각 필터는 커널이라 부르는 가중치와 절편을 가지고 있다. 일반적으로 절편은 시각적으로 의미가 있지 않다. 가중치는 입력 이미지의 2차원 영역에 적용되어 어떤 특징을 크게 두드러지게 표현하는 역할을 한다. 예를 들어 다음과 같은 가중치는 둥근 모서리가 있는 영역에서 크게 활성화되고 그렇지 않은 영역에서는 낮은 값을 만들 것이다. 이 필터의 가운데 곡선 부분..

[8-2] 합성곱 신경망을 사용한 이미지 분류

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝 책을 공부하고 정리한것 입니다. 이번 시간에는 텐서플로 케라스 API를 사용해 7장에서 만들었던 패션 MNIST 데이터를 합성곱 신경망으로 분류해보겠다. 패션 MNIST 데이터 불러오기 합성곱 신경망은 2차원 이미지를 그대로 사용하기 때문에 일렬로 펼치치 않는다. 다만 입력 이미지는 항상 깊이(채널) 차원이 있어야 한다. 흑백 이미지의 경우 채널 차원이 없는 2차원 배열이지만 Conv2D층을 사용하기 위해 마지막에 이 채널 차원을 추가해야 한다. 넘파이 reshape() 메서드를 사용해 전체 배열 차원을 그대로 유지하면서 마지막에 차원을 간단히 추가할 수 있다. from tensorflow import keras from sklearn.model_select..

[8-1] 합성곱 신경망

합성곱 합성곱(convolution)은 마치 입력 데이터에 마법의 도장을 찍어서 유용한 특성만 드러나게 하는 것으로 비유할 수 있다. 인공 신경망은 처음에 가중치 w1~w10과 절편 b를 랜덤하게 초기화한 다음 에포크를 반복하면서 경사 하강법 알고리즘을 사용하여 손실이 낮아지도록 최적의 가중치와 절편을 찾아간다. 이것이 바로 모델 훈련이다. 합성곱의 밀집층의 계산은 입력 데이터 전체에 가중치를 적용하는 것이 아니라 일부에 가중치를 곱한다. 다음 그림과 위의 그림을 비교해 보자. 여기에서는 이 뉴런이 3개의 가중치를 가진다고 가정했다. 가중치 w1~w3이 입력의 처음 3개 특성과 곱해져 1개의 출력을 만든다. 이 뉴런이 한 칸 아래로 이동해 두 번째부터 네 번째 특성과 곱해져 새로운 출력을 만든다. 여기서..

[7-3] 신경망 모델 훈련

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝을 공부하고 정리한것 입니다.손실 곡선 케라스의 fit() 메서드는 History 클래스 객체를 반환한다. History 객체에는 훈련 과정에서 계산한 지표, 즉 손실과 정확도 값이 저장되어 있다. 이 값을 사용하면 그래프를 그릴 수 있다.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_ta..

[7-2] 심층 신경망

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝을 공부하고 정리한것 입니다. model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics='accuracy') model.fit(train_scaled,train_target,epochs=5) 앞에서 만들었던 인공 신경망의 성능을 더 높여보자. 2개의 층 from tensorflow import keras (train_input,train_target),(test_input,test_target)= keras.datasets.fashion_mnist.load_data() 이미지의 픽셀값을 0~255 범위에서 0~1 사이로 변환하고 28 x 28 크기의 2차원 배열을 784 크기의 ..

[7-1] 인공 신경망

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝 책을 공부하고 정리한것 입니다. 패션 MNIST from tensorflow import keras (train_input,train_target),(test_input,test_target) = keras.datasets.fashion_mnist.load_data() keras.dataset.fashion_mnist 모듈 아래 load_data() 함수는 친절하게 훈련 데이터와 테스트 데이터를 나누어 반환한다. 이 데이터는 각각 입력과 타깃 쌍으로 구성되어 있다. print(train_input.shape,train_target.shape) 훈련 데이터는 60,000 개의 이미지로 이루어져 있다. 각 이미지는 28 x 28 크기이다. print(test_i..

[6-3] 주성분 분석

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝 책을 공부하고 정리한것 입니다. k-평균 알고리즘으로 업로드된 사진을 클러스터로 분류하여 저장할수 있게 되었다. 그런데 시간이 지나면서 너무 많은 사진이 등록되어 저장 공간이 부족해질 수 있다. 나중에 군집이나 분류에 영향을 끼치지 않으면서 업로드된 사진의 용량을 줄일 수 있을까? 차원과 차원 축소 지금까지 우리는 데이터가 가진 속성을 특성이라 불렀다. 과일 사진의 경우 10000개의 픽셀이 있기 때문에 10000개의 특성이 있는 셈이다. 머신러닝에서는 이런 특성을 차원(dimension) 이라고도 부른다. 10000개의 특성은 결국 10000개의 차원이라는 건데 이 차원을 줄일 수 있다면 저장 공간을 크게 절약할 수 있을 것이다. 이를 위해 비지도 학습 작..