전체 글 113

챕터 07 - 1

이제 생선에서 벗어나 패션 아이템이라는 새로운 데이터 셋을 사용하게 됐다. 아이템 분류 문제를 기존 로지스틱 회귀로도 다시 해보고 이번 챕터에서 새로 배울 인공 신경망을 통해서도 분류를 한다음 성능을 비교해보자. 우선 데이터를 로딩하는데 패션 MNIST 데이터는 워낙 유명하기 때문에 딥러닝 라이브러리에서 이 데이터를 바로 로딩해서 쓸수 있다. 라이브러리는 텐서플로라는 아주 유명한 라이브러리를 사용했고 로딩한 데이터를 출력해보고 샘플의 타깃값 10개와 레이블당 샘플수까지 확인해봤다. 이 훈련 샘플은 60,000개나 되기 때문에 전체 데이터를 한꺼번에 사용하여 모델을 훈련하는 것보다 샘플을 하나씩 꺼내서 훈련하는 방법이 더 효율적으로 보인다. 확률적 경사 하강법이다. 훈련전에 2차원인 샘플들을 1차원으로 펼..

챕터 06 - 3

주성분 분석 차원과 차원 축소 지금까지 데이터가 가진 속성을 특성이라고 불렀는데 과일 사진의 경우 10,000개의 픽셀이 있기 때문에 10,000개의 특성이 있는 셈이다. 머신러닝에서는 이런 특성을 차원이라도 부른다. 나중에 보겠지만 이런 차원을 줄일 수 있다면 저장 공간을 크게 절약할 수 있을 것이고 차원 축소된 데이터를 지도 학습 알고리즘이나 다른 비지도 학습 알고리즘에 재사용하여 성능을 높이거나 훈련 속도를 빠르게 만들 수도 있다. 즉 이번 챕터에서 배울 내용을 미리 요약하면 그림의 10,000 개의 픽셀을 해당 이미지의 특성을 가진 몇십개의 픽셀 정보로 줄여서 그걸 가지고 다른 분야에 사용할수 있다는 것이다. 아무튼 작업을 하는 대표적인 알고리즘이 주성분 분석 (PCA)이 있다.줄여서 PCA라고도..

챕터 06 - 2

전 챕터에서는 사실 정답을 알고 있었기 때문에 정답(평균)에 가까운 사진을 찾기를 수행했었다. 하지만 진짜 비지도 학습에서는 어떤 사진이 들어있는지 알지 못한다. 이런 경우 어떻게 평균값을 구할 수 있을까? 책에선 k-평균 군집 알고리즘이 평균값을 자동으로 찾아준다고 하던데... 이 평균값이 클러스터의 중심에 위치하기 때문에 클러스터 중심 또는 센트로이드라고 불린다. 작동 알고리즘은 거리 기반 알고리즘과 비슷한데 일단 정해진 숫자만큼 그룹을 짓고 거기의 평균값을 구한다음 비교하고 좌표를 조금 이동해서 다시 정해진 숫자만큼 그룹을 짓고 평균값을 구하고 비교하고... 이런식으로 그룹내에서 변동이 없으면 종료하는 방식이다. 그럼 다시 과일사진 300개를 다시 준비하고 이 사진들을 한 평면에 쫘악 펼쳐서 배치하..

챕터 06 - 1

지금까지 데이터와 정답이 있는 지도학습을 진행했다. 이제 정답없이 자동으로 학습을 하는 비지도학습을 익혀보자. 학습 예제로 무작위의 과일 사진모음을 자동으로 분류하기를 원하는 예제인데 타깃이 없는 상태이다. 이제 숫자가 아닌 이미지를 다루는데 어떤식으로 처리해야 할까? 정답은 픽셀이다. 픽셀 하나하나를 숫자로 치환해서 다루는게 핵심이다. 또한 본문에도 나오지만 높은 의미를 갖는 값을 흰색으로 하고 낮은 의미를 가진 값(예를 들면 바탕색)은 검은색으로 바꿔서 처리를 하면 계산이 쉽게된다. 머신러닝의 기본 작업 순서를 다시 되새겨서 크게 보면 1. 데이터 준비 및 파악 2. 적절한 전처리 3. 적절한 알고리즘으로 학습 4. 학습 평가 5. 하이퍼파라미터 조정을 통해 다시 학습 반복 6. 실제 활용 1. 데이..

챕터 05 - 3

이번 챕터는 약간 정리하는 과정이 있다. 정형데이터와 비정형데이터 데이터의 종류는 크게 정형데이터와 비정형데이터로 나뉘는데 정형데이터는 즉 어떤 구조화된 데이터라는 뜻인데 머신러닝 알고리즘은 정형데이터에 잘 맞는데 그중에 정형 데이터를 다르는데 가장 뛰어난 성과를 내는 알고리즘이 앙상블 학습이고 이 알고리즘은 결정 트리 기반으로 만들어져 있다. 그럼 비정형 데이터는 어떤 알고리즘을 사용해야 할까? 신경망 알고리즘이다. 이제 앙상블 알고리즘을 학습해보자 랜덤포레스트 앙상블 학습의 대표 주자 중 대표 주자 중 하나로 안정적인 성능 덕분에 널리 사용되고 있다. 사용법은 랜덤포레스트는 각 트리를 훈련하기 위한 데이터를 랜덤하게 만드는데 이 데이터를 만드는 방법이 특이하다. 우리가 입력한 훈련데이터에서 랜덤하게 ..

챕터 05 - 2

앞에서 전체 데이터를 훈련세트와 테스트세트로 나눠서 훈련세트로 훈련한 값으로 테스트 세트를 평가하는 과정이 하나의 루틴처럼 굳어졌다. 그동안 평가 점수가 높게 나왔기 때문에 별문제가 없었지만 사실 하이퍼 파라미터를 이리저리 조정해서 테스트 세트의 점수가 높게 나오게 조정하면서 계속 학습한다면 테스트 세트로 테스트하는 의미가 약해진다. 즉 테스트 세트는 말그대로 테스트 할때 한번만 사용해야 한다. 검증세트 그럼 어떻게 해야 할까? 훈련세트를 또 나누는 방법이 있다. 전체 데이터중에서 20%를 테스트 세트로 나머지 80%를 훈련세트로 사용했는데 여기서 훈련세트에서 다시 20%를 떼어 내어 검증세트로 만든다. 위의 방법대로 와인문제를 다시 접근해보자. 훈련세트와 검증세트로 훈련하고 점수를 확인해보니 확실히 훈..

챕터 05 - 1

이제 생선 데이터를 벗어나 와인을 분류해보자. 주어진 문제는 알코올 도수, 당도, ph값으로 레드와인과 화이트와인을 분류하는 이진분류 문제이다. (화이트와인을 1로 양성 클래스) 사실 그동안의 과정을 통하면 가능한 작업이다. 와인데이터를 로드해서 데이터의 여러정보를 판다스의 기능을 이용해서 확인해보았다. 일단 데이터정보를 살펴보니 스케일이 다르기 때문에 표준화를 해야하고 데이터 안에 타겟값이 같이 들어있어 분류해내어서 써야 한다. 로지스틱 회귀를 써서 잘 분류까지 진행되는 작업이다. 하지만 위 내용은 책에서는 일반인이 계수와 절편값들이 의미하는 바를 이해하지 못하기 때문에 남들에게 좀 더 설명하기 쉬운 다른 알고리즘을 쓰는것으로 나온다. 즉 일반 순서도의 결정처리처럼 처리되게 하는 결정트리 알고리즘을 쓰..

챕터 04 - 2

책에서는 시나리오 예를 들어 잘 설명을 했는데 결론은 책 초반에는 데이터가 확정되어 있는 상태에서는 학습하고 결론을 끌어냈는데 이번 챕터에서는 훈련할 데이터가 계속 증가된다면 어떻게 처리할까이다. 앞에서 훈련한 모델을 버리지 않고 새로운 데이터에 대해서만 조금씩 더 훈련하는걸 점진적 학습이라고 부른다. 이런 점진적 학습 알고리즘에 대표가 확률적 경사 하강법이라는 것이다. 개념적으로 접근해보자면 확률적 경사 하강법이라는 문장에 여러 힌트가 있다. 일단 경사 하강법이라는 문장은 경사를 따라 내려가는 방법 (목표점을 향한 기울기정도로 이해) 어떤 목표에 도달하기 위해 경사를 급하게 주면 목표를 지나칠수도 있기 때문에 천천히 조금씩 내려와야 한다. 하지만 샘플을 하나하나 학습해서 순차적으로 경사를 구하는게 아닌..

챕터 04 - 1

박스안에 있는 것이 7개의 물고기중에 어떤것일까? 라는 문제 즉 각 생선별로 확률이 있고 전체 확률이 100%가 되어야 하는 문제 일종의 다중분류 문제이다. 물고기의 5개의 특성으로 7개의 생선으로 분류하는 과정을 다시 암기로... ㅎㅎ 1. 데이터 준비 및 데이터 패턴 파악하기 ( 주로 그래프들을 그려가며 대략적인 추세 파악 ) 2. 만약 스케일이 안맞는 데이터들이라면 스케일 맞추기 3. 훈련세트와 테스트세트 준비하기 4. 특정 알고리즘 (여기선 k-최근접 이웃 알고리즘 ) 으로 훈련하기 5. 과소적합, 과대적합 파악해서 파라미터 조정하기 6. 평가 7. 예측 및 사용하기 역시 시작은 만만한 k-최근접 이웃 모델로... 1. 데이터 준비 및 데이터 패턴 파악하기 ( 주로 그래프들을 그려가며 대략적인 추..

챕터 03 - 3

이제 다항 회귀로 농어의 무게를 어느정도 예측할 수 있지만, 좀 더 손을 봐서 결정계수와 예측율을 높여보자. 사실 3-2 에서 주어진 데이터는 농어의 길이말고 높이와 두께 데이터도 있는데 이걸 활용하면 더 높은 효과를 낼수 있을거라 한다. 3-2에서 하나의 특성을 사용하여 선형회귀 모델을 훈련시켰는데 그 특성을 여러개로 늘려서 다항회귀를 사용했었고 여러 개의 특성을 사용한 선형회귀를 다중회귀라고 해서 차이가 있다. 이번 챕터에서는 길이, 무게, 높이 뿐 만아니라 3개의 특성을 각각 제곱해서 추가하고 거기다가 각 특성을 서로 곱해서 또 다른 특성을만든다고 함. 이렇게 기존의 특성을 사용해 새로운 특성을 뽑아내는 작업을 특성 공학이라고 한다. 또한 이번에는 넘파이보다 좀 더 데이터 분석기능(주로 행렬)이 강..