TOP
class="layout-aside-left paging-number">
본문 바로가기
Book Record/2024 - 10권 목표

[24년 8th] 개발자를 위한 필수 수학

by 기록자_Recordian 2024. 10. 2.
728x90
반응형

<개발자를 위한 필수 수학, 토머스 닐드 지음, 박해선 옮김, 한빛미디어, 2024>

 

인공지능과 머신러닝을 공부하면서 뗄레야 뗄 수 없는 학문이 두 가지가 있다.

첫째는 통계학, 둘째는 수학이다.

통계학의 경우는 <현대통계학> 이라는 책과 유튜브에 나와있는 양질의 온라인 강의를 통해 학습을 이어나갈 예정이다.

 

[24년 4번째] 현대통계학

빅데이터분석기사 필기 시험을 보면서 느낀 건 여러가지가 있었지만, 그중에서도 1) 빅데이터 분석 및 활용 분야에선 통계가 정말 중요하다 2) 내가 통계에 대해 많이 부족하다 두 가지 였다. 그

puppy-foot-it.tistory.com

 

수학의 경우엔... 나같은 경우엔 고등학교를 실업계 (상고)를 나와서 그런지 몰라도, 고1때까지만 수학을 배운 뒤 고2때부터는 전공 교과 위주로 수업을 해서 수학 실력은 아마 중학교에서 멈춘듯하다.

프로그래밍 공부를 하고, 그러다 머신러닝 관련 학습을 하면서 코딩을 하는 것도 중요하지만,

그보다 더 중요한 것은 학습할 모델을 만드는 과정이 매우 중요하다는 것을 깨달았다.

그 과정에서 수학이 무엇보다 중요하다는 것 역시 깨달았다.

 

아마도 빅데이터분석기사, ADsP 등 데이터 분석 관련 자격증을 준비하고 공부해 보신 분이라면 이 분야에서 코딩 능력보다 수학과 통계학 관련 지식이 더 중요하다는 것을 느끼신 분들이 많으실 것이다.

더군다나, 요즘엔 챗GPT 같은 생성형 AI가 코딩을 다 해주고, 심지어 나보다 더 나은 실력을 갖고 있으니 앞으로도 중요한 것은 내가 이론적으로 더 많이 알아야 AI에게 올바른 질문을 하고, AI가 내놓은 답변이 맞는 답변인지를 검증할 수 있을 것이다.

 

그래서 (현재까지는) AI는 도구일 뿐이고, 그걸 사용하는 인간이 얼마나 그 도구를 잘 활용하는지, 그 도구의 답변이 진실인지 아닌지, 유용한지 무용지물인지를 분별하는 능력에따라 AI에 지배당하느냐, AI를 지배하느냐가 갈릴 것으로 생각된다.

 

생성형 AI 관련된 용어 중에 'AI 환각' 이라는 단어가 있다.

이는, 챗GPT 같은 AI가 내놓은 답변이 언제나 진실인 것은 아니며, 잘못된 정보들도 있다는 것이다.

★ AI 환각이란? (출처: techopedia.com)

AI 환각 (AI Hallucination)은 OpenAI의 GPT4 또는 Google PaLM과 같은 대규모 언어 모델(LLM)이 실제 데이터나 이벤트에 기반하지 않은 거짓 정보나 사실을 구성하는 것을 말한다.

AI 환각은 대규모 언어 모델에서 완전히 조작된 결과물이다. 완전히 꾸며낸 사실을 표현하지만, 결과적인 LLM 출력은 자신감 있게 잘못된 결과를 보여주는 경우가 있다.

생성형 AI 기반 챗봇은 이름, 날짜, 역사적 사건부터 인용문, 심지어 코드에 이르기까지 모든 사실 정보를 조작할 수 있다.

AI 환각 현상은 OpenAI가 실제로 ChatGPT 내에서 사용자에게 “사람, 장소 또는 사실에 대한 부정확한 정보를 생성할 수 있다.” 라는 경고를 표시할 정도로 흔한 현상이다.

 

나 역시도 챗GPT 를 자주 활용하는 사람으로서, AI 환각을 자주 경험한다.

코딩을 할 때에는 코딩 프로그램에서 수행 시 에러가 나거나, 내가 원하는 방향의 결과가 나타나지 않는 등 비교적 즉각적으로 진위 여부가 나타나기 때문에 크게 문제는 없으나, 블로그 포스팅을 쓰거나, 어떤 지식이나 정보에 대해 물어봤을 때에는 이게 맞는 정보인지를 분별하기가 어렵다.

심지어 내가 잘 모르는 분야라면 더더욱. 특히, 요즘에 문제가 되고 있는 '딥페이크' 역시 AI 환각의 대표적 예 중 하나다.

 

아무튼, 이런 연유로 인해 현재 중요한 것은 코딩 능력보다는 학문적 이론이 더 중요하고, 그 이론을 기반으로 기술을 도입하여 모델을 생성해는 방식으로 학습을 진행해 가야겠다는 쪽으로 방향이 잡혔다.

 

코딩만 연습하고 학습하게 되면, 머신러닝, 딥러닝 모델을 구현할 때 이 모델이 어떤 방식으로 결과를 도출했는지, 어떤 근거로 이러한 결과가 나왔는지 알 수 없는 '블랙박스' 현상에 대해 분석할 수 없을 것이다.

★ AI 분야에서의 '블랙박스'란? (출처: 주간경향 IT 칼럼, 'AI의 복잡성과 블랙박스 문제')

챗GPT, 바드와 같은 대규모 언어 모델 기반의 AI는 ‘블랙박스’ 문제를 안고 있다. AI 분야에서 블랙박스란 머신러닝, 특히 복잡한 딥러닝 기반의 AI 모델에서 두드러지는 문제로, 모델이 내부적으로 어떻게 작동하는지 관찰하거나 이해하기 어려운 문제를 뜻한다. 예를 들면 알파고의 경우에도 특정 게임에서 왜 저러한 특정 수를 둔 것인지 알파고 개발자도 설명하기 어려웠는데, 그 이유가 바로 블랙박스 때문이다.

AI에서 ‘모델’이라는 용어는 데이터로부터 특정 패턴이나 관계를 학습해 예측, 분류 등과 같은 작업을 수행하기 위한 수학적 표현을 의미한다. 모델은 알고리즘과 데이터를 사용해 구축되며 AI의 기술적 핵심 요소라고 할 수 있다.

최근 유행하는 AI에는 주로 딥러닝 모델이 사용된다. 그런데 딥러닝 모델이 가진 작동 방식의 복잡성, 학습 및 결정 과정의 불투명성은 블랙박스 문제를 증폭시킨다. 딥러닝 모델은 내부적으로 ‘신경망’을 사용한다. 인간의 뇌를 모방한 신경망의 각 노드와 레이어는 서로 연결돼 있으며, 수십억개가 넘는 파라미터(매개변수)가 수학적 연산을 통해 상호작용하도록 만들어져 있다.

신경망에서 파라미터는 가중치, 편향, 학습률 등을 제어하고 조정하는데 이를 통해 어떤 정보가 중요한지 파악하거나 과도한 학습으로 인한 오류를 방지하는 등 모델의 학습 경로와 의사결정 경로를 안내하고 최적화하는 데 중요한 역할을 담당한다.

딥러닝 모델은 수많은 파라미터가 상호작용하는 복잡한 구조로 인해 모델의 작동 방식을 이해하고 설명하기가 어렵다. 또한 학습 및 결정 과정에서 복잡한 알고리즘을 사용하는데 이 과정에서 수학적으로 많은 연산이 발생해 그 과정과 결과를 설명하기란 매우 어렵다.

블랙박스로 작동되는 딥러닝 모델에서 사용자는 입력과 출력만을 확인할 수 있다. 중간 과정이 어떻게 이루어지는지 명확히 알기 어렵다. 이는 여러 문제의 가능성을 내포한다.

첫째, 신뢰성 문제다. 작동 원리를 명확히 이해할 수 없다면 사용자와 의사결정자들이 AI를 신뢰하기 어려울 수 있다. 둘째, 윤리적 문제다. AI가 편향된 결정을 내리고 사회적 불평등을 유발할 수 있다. 셋째, 규제 및 법적 책임의 문제다. AI의 결정 과정을 설명할 수 없다면 특히 금융, 의료 등과 같이 엄격한 규제가 존재하는 분야에서는 법적 요구사항을 충족시키기 어려울 수 있다.

예를 들어 신용평가에 딥러닝 모델을 사용하는 상황을 가정해 보자. AI의 결정 과정이 불투명하면, 개인이 왜 특정 신용등급을 받았는지 이해하기 어렵고 기본적인 권리를 침해할 수 있다. 의료 진단의 경우도 마찬가지다. AI가 특정 진단을 내린 이유를 정확히 확인할 수 없다면, 잘못된 진단이 이루어질 수 있고 환자에게 심각한 영향을 미칠 수 있다.

 

약 2년(본격적으로 공부한 건 약 1년이 채 안 되지만) 동안의 독학 기간이 지나면서 기술의 발전 속도와 변화하는 속도는 빠른데, 나의 지식 습득 능력은 그에 한참 못미쳐서 따라가기가 조금은 버겁다는 느낌이 많이 들었었다.

그리고 새로운 것들이 계속 범람하다보니 배워야할 분야들도 늘어나고, 어떤 것부터 배워야 할지에 대한 기준도 점점 모호해지고 마음이 조급해지는 반면에 학구열은 떨어지는 침체기를 겪고 있었다.

 

생각해보니, 나를 지도해줄 누군가가 없다는 것도 문제겠지만, 내가 기본이 없이 유행만 좇아가다보니 방향을 잃어가는 것 같다는 생각도 들었다. 마치 축구 연습도 하지 않으면서 국가대표가 되겠다는 야심만 가득한 사람처럼 말이다.

 

앞으로의 학습 방향은 먼저 학문적으로 기본기를 익히고, 그 지식을 기술을 통해 실현해보는 방식으로 진행해 나가기로 마음 먹었고, 그 중요한 학문 중 하나가 수학이다.


책의 구성

 

서론이 너무 길었는데, 이 책에는 머신러닝 (딥러닝 포함)에 필수적인 수학적인 이론과 공식을 담고 있으며, 이를 파이썬으로 구현하는 방식으로 되어있다.

특히, 인상적인 부분은 마지막 장(8장)에 '경력 조언과 앞으로의 진로' 라는 챕터를 통해 머신러닝 개발자, 데이터 과학자가 되기 위한 사람들을 위한 작가의 현실적인 조언이 담겨 있어 많은 도움이 될 것이다.

 

[목차]

1장 기초 수학과 미적분

_1.1 정수론
_1.2 연산 순서
_1.3 변수
_1.4 함수
_1.5 합계
_1.6 거듭제곱
_1.7 로그
_1.8 오일러 수와 자연로그
_1.9 극한
_1.10 미분
_1.11 적분
_1.12 마치며

2장 확률

_2.1 확률 이해하기
_2.2 확률 계산
_2.3 이항 분포
_2.4 베타 분포
_2.5 마치며

3장 기술 통계와 추론 통계

_3.1 데이터란 무엇인가요?
_3.2 기술 통계와 추론 통계
_3.3 모집단, 표본, 편향
_3.4 기술 통계
_3.5 추론 통계
_3.6 t 분포: 소규모 표본 처리
_3.7 빅 데이터 고려 사항과 텍사스 명사수 오류
_3.8 마치며

4장 선형대수학

_4.1 벡터란 무엇인가요?
_4.2 선형 변환
_4.3 행렬 곱셈
_4.4 행렬식
_4.5 특수 행렬
_4.6 연립 방정식과 역행렬
_4.7 고유 벡터와 고윳값
_4.8 마치며

5장 선형 회귀

_5.1 기본 선형 회귀
_5.2 잔차와 제곱 오차
_5.3 최적의 직선 찾기
_5.4 과대적합 및 분산
_5.5 확률적 경사 하강법
_5.6 상관 계수
_5.7 통계적 유의성
_5.8 결정 계수
_5.9 추정 표준 오차
_5.10 예측 구간
_5.11 훈련/테스트 분할
_5.12 다중 선형 회귀
_5.13 마치며

6장 로지스틱 회귀와 분류

_6.1 로지스틱 회귀 이해하기
_6.2 로지스틱 회귀 수행하기
_6.3 다변수 로지스틱 회귀
_6.4 로그 오즈 이해하기
_6.5 R2
_6.6 p 값
_6.7 훈련/테스트 분할
_6.8 오차 행렬
_6.9 베이즈 정리와 분류
_6.10 ROC 곡선과 AUC
_6.11 클래스 불균형
_6.12 마치며

7장 신경망

_7.1 언제 신경망과 딥러닝을 사용할까요?
_7.2 간단한 신경망
_7.3 역전파
_7.4 사이킷런 사용하기
_7.5 신경망과 딥러닝의 한계
_7.6 마치며

8장 경력 조언과 앞으로의 진로

_8.1 데이터 과학의 재정의
_8.2 데이터 과학의 간략한 역사
_8.3 나만의 강점 찾기
_8.4 데이터 과학 직무에서 주의해야 할 사항
_8.5 꿈의 직업이 존재하지 않나요?
_8.6 이제 어디로 가야 하나요?
_8.7 마치며

부록 A 보충 학습

A.1 심파이로 수학식 표현하기
A.2 밑바닥부터 이항 분포 구현하기
A.3 밑바닥부터 베타 분포 구현하기
A.4 베이즈 정리 유도하기
A.5 밑바닥부터 CDF와 역CDF 구현하기
A.6 e를 사용해 시간 경과에 따른 사건 확률 예측하기
A.7 언덕 오르기와 선형 회귀
A.8 언덕 오르기와 로지스틱 회귀
A.9 선형 계획법에 대한 간략한 소개
A.10 사이킷런을 사용한 MNIST 분류기

〈별책 부록〉 워크북


책 일부 내용

 

 

 

728x90
반응형