2023/08 6

혼공학습단 10기(혼자 공부하는 머신러닝)를 끝내면서....

약 한달간의 기간은 해볼만하다고 생각하고 무작정 달려들었지만... 나름 예전에 독학으로 반정도는 봤던 책이라 다시 시작하면 쉽게 쉽게 갈 수 있을줄 알았건만 다시 들여다본 책은 하얀건 종이요 까만건 글씨인건 변하지 않았더군요. 역시 책이란건 한번 봤으면 끝까지 다시 봐야 기억에 그나마 남는거 같았습니다. 중간에 그만둔 책을 다시 보니 아주 미세한 기억만이 남아있었습니다. 또한 직장인들의 주중 저녁시간은 비어있는듯 비어있지 않은 시간임을 다시 한번 깨닫게 되었네요. 항상 출근할때는 퇴근후에 한 챕터씩 진도를 나가야지를 다짐하지만 피곤함앞에서는 장사가 없었습니다. 그래도 가끔씩 주는 선물은 큰 힘이 되었고 ㅎㅎㅎ 선물을 받았으니 어떻게든 마무리를 해야겠다는 강력한 의지로 주중에 못한 작업들은 주말에 몰아서 ..

챕터 07 - 3

이전 7챕터들 에서는 인공 신경망에 대해 배우고 텐서플로의 케라스 API를 사용하는 법과 1개 이상의 층을 추가하여 심층 신경망을 구성하고 다양한 고급 옵티마이저들을 알아보았다. 이렇게 딥러닝에서는 모델의 구조를 직접 만들어간다는 느낌이 훨씬 강하다. 이번 절에서는 케라스 API를 사용해 모델을 훈련하는데 필요한 도구들을 알아보겠다. 손실곡선 fit() 메소드로 모델을 훈련하면 무엇인가를 반환하는데 이때 반환값이 History 클래스 객체를 반환한다. History 객체에는 훈련과정에서 계산한 지표, 즉 손실과 정확도 값이 저장되어 있다. 이 값을 사용하면 그래프를 그릴 수 있다. 챕터를 진행하기 전에 이전의 패션 데이터를 로드하고 훈련 세트와 검증 세트로 나누자. 그리고 모델을 만드는 간단한 함수를 정..

챕터 07 - 2

앞 챕터에서 사용한 인공 신경망은 사실 층이 1개짜리인데도 불구하고 로지스틱 회귀보다 높은 성능을 보여줬다. 이 인공 신경망은 층을 더 추가해서 성능을 높일수 있는데 그걸 알아보자. 역시 패션 데이터를 불러와서 테스트세트와 검증세트를 분리하는것까지 수행하자. 이제 전 챕터에서 만든 모델에서 중간에 밀집층이 추가한다. 이렇게 입력층과 출력층 사이에 있는 모든 층을 은닉층이라고 부른다. 그런데 은닉층에는 활성화 함수가 포함되는데 왜냐하면 은닉층에서 선형적인 산술 계산만 수행한다면 수행 역할이 없는 셈이라서 선형 계산을 적당하게 비선형적으로 비틀어 주어야 하는데 이 역활을 활성화 함수가 수행한다. 많이 사용하는 활성화 함수 중 하나는 시그모이드이다. 그럼 시그모이드 활성화 함수를 사용한 은닉층과 소프트맥스 함..

챕터 07 - 1

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

챕터 06 - 3

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

챕터 06 - 2

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