요즘 바야흐로 Ghat GPT, 제미나이, Grok등 생성형 AI의 시대에 접어들고 있다.
최근 Sales Engineer로 이직한 나는 LLM등을 잘 쓰는 것도 중요하지만 이런 기술이 나오기 위한 원류, 즉, 데이터 파이프라인부터 
머신러닝 기법 및 알고리즘이 어떻게 돌아가는지 늘 궁금했다.
지금은 이 책을 비롯해 많은 책이 나왔지만, 개인적으로 어려운걸 싫어하기에 쉽고 간단하게 설명한 책을 찾으려 애썼다.

개인적으로 숲보다는 나무를 보는 공부 스타일이기에 하나하나 원리를 짚어주는 책을 선택하기를 원했고 Facebook 및 Instagram등에서 유명하신 박해선님의 책을 선택했다.

나는 숲보다는 나무 유형이라구! / 출처:ChatGPT

막상 마음을 먹었지만 혼자서 자의적으로 공부를 하기란 직장인의 루틴상 어렵기에 타의적으로라도 해야겠다 싶어 혼공 모임에 참여했다.

하지만 어찌되었든 학습은 내가 해야 하는법!
리디북스에서 책을 구입했고 공부를 시작하는데 시작이 반이라고 그래도 책이 술술 넘어가는게 아닌가?
처음에 혼공머신이라는 신입사원이 물고기를 분류하는 부분을 머신러닝 문제로 어떻게 풀어나갈 수 있을지 얘기하고 있는데 이 부분은 정말 즐거운 스토리였다고 생각한다.

역시 잘써! 뭐를? 책을!

그렇게 1장에 대한 내용 자체는 쉽게 이해할 수 있었다.
좀 더 있어보이는 척을 해보자면 도미와 빙어를 분류하는 문제인데 무게와 길이라는 각각의 특성에 대한 데이터를 이용해서 어떠한 분류선을 그리고 새로운 데이터를 넣었을 때 이 데이터가 도미인지 빙어인지 구분할 줄 알면 되는 것이다.
이것이 뭐다? 이진 분류라고 한다. (두개를 구분하니까 이진 분류!, 여러개를 구분하려면 이진이 아닌 다중 클래스 분류던가? 그런식의 이름이었던것 같다)

2장부터는 우리의 주인공인 혼공머신이 어려운 상황을 맞이하게 되는데, 기본적으로 구글 코랩에서 주피터 노트북을 실행하고 어떤 코드를 통해서 문제를 해결할 수 있는지 설명한다.
여기서 나의 첫번째 난관은 파이썬에 많이 익숙하지 못하고 numpy, matplot등 라이브러리 사용법을 잘 알지 못해 시간을 좀 많이 썼다. 요즘 세상 참 좋아졌다고 느낀것은 예전엔 이럴때는 책 + 구글링을 얼마나 잘하느냐가 빠른 지식습득의 원천이었는데 간단히 나의 튜터인 chatGPT등을 사용하면 된다는 것이다.

나에게 파이썬을 알려주세요. GPT시여!

이런 형태로 문제를 해결하는 부분을 같이 고민하고 진행했으며, K네이버(naver 아니다)알고리즘 또는 한국말로 K최근접 알고리즘이라는 것으로 문제를 해결하고 X축과 Y축의 수치가 표준화되지 않아 어떤식으로 표준화 할 수 있을지에 대한 부분을 학습했다.

첫번째 최근접 알고리즘은 2차원 그래프에서 어떠한 점(새로운 데이터, 너는 도미이니 빙어니?)이 들어왔을 때 이를 도미인지 빙어인지 판단하기 위해 그 데이터에서 수학적으로 가장 가까운 거리에 있는 점 5개(몇개를 계산할지는 변경가능)를 계산하고 대다수가 몰린 쪽이라고 판단하는 것이다. (예를 들어 3점이 도미에 가깝고 2점이 빙어에 가깝다면 이 데이터는 도미임!)

자 이제 도미인지 빙어인지 맞춰 보실까?

두번째로는 각수치에 대한 스케일링인데 X축과 Y축의 차이(즉, 특성의 차이, 길이와 무게가 너무 차이나면 안됨)를 표준화 시킨다는 의미다.
아...내가 설명하고도 무슨말인지 헷갈리겠네. 무슨말이냐면 Y축은 데이터가 1-1000단위이고 X축은 0.1~1단위로 데이터가 있다고 생각해보자. 공평한가? 노우노우 불공평하다. 이를 동일한 기준으로 맞춰주는 것을 스케일링이라고 한다.

스케일링 하지 않으면 이러한 데이터를 보게 될것이다!

이런 형태로 데이터를 처리하는 부분을 데이터 전처리라고 한다. 즉, 올바른 결과를 보려면 이것저것 신경써야 할 것이 많다는 것이지. 이런 고생을 통해 머신러닝 모델들이 발전하는 것이 아닐까?

여하튼! 2장까지의 소감은....

할만하네!

 

+ Recent posts