오늘 읽기 시작한 부분에서 저자는 AI 빅데이터 전문가로 제대로 성장하기 위해서는 수학 지식이 일정부분 필요하다고 말한다. 이는 데이터 분석 시 모델을 각각의 상황에 맞게 응용하는데 절대적으로 필요하기 때문이다. 특별히 빅데이터 분석 시 필요한 수학 분야 중 하나로 저자는 수리통계학을 언급하는데, 이쪽 분야의 전문가인 저자가 반복해서 언급하는 데는 다 그럴만한 이유가 있다고 보는 게 맞을 듯하다.

분석을 하다 보면 파라미터를 수정해주거나 경우에 따라서는 모델 자체를 변형해야 하는 경우가 꽤 있다. 그러려면 무엇보다 알고리즘의 개념과 원리에 대해서 알아야 하는데 당연히 수학이 들어가기 마련이다. - P154

AI 빅데이터 분석을 위해서 가장 많이 쓰이는 수학은 수리통계학과 선형대수학이다. 사실 선형대수학도 공부해야 한다. 하지만 수학을 싫어하는 사람들에게 선형대수학까지 강요할 수는 없으니 그나마 조금 쉽고 더 기본이 되는 수리통계학이라도 배우면 좋을 듯하다. - P154

수리통계학이란 무엇인가? 위키백과를 찾아보면 "통계학의 수학적 이론으로 확률모형, 통계적 추정 이론과 검정 이론, 계산 알고리즘의 성질 등을 탐구하는 학문"이라고 나와 있다. - P154

내가 생각하는 수리통계학은 확률과 분포에 대해서 많이 다루는 학문이다. 그리고 이러한 확률과 분포가 실제 데이터 마이닝 알고리즘에 굉장히 많이 쓰이고 있다. - P154

데이터 분석의 가장 기초로 불리는 선형회귀 분석을 살펴보자. 선형회귀 분석을 하기 위해서는 몇 가지 가정이 만족되어야 하는데 그중에 등분산성, 정규성 가정 항목이 있다. 등분산성이란 응답변수에 대한 잔차의 분산이 같아야 한다는 것을 의미하고 정규성이란 응답변수에 대한 잔차가 정규분포를 띄어야 한다는 것을 의미한다. - P154

각각의 분포들은 데이터에 대한 추정을 가능하게 한다. 예를 들어 어떠한 데이터가 주어졌을 때 그 데이터가 특정 분포를 따른다고 가정하고 데이터의 평균, 분산에 대한 추정과 그구간 범위까지 추정할 수 있다. 이러한 추정들은 실제 현장에서 AI 빅데이터 분석 시 데이터 전처리 직후 기술통계 부분에서 많이 쓰인다. - P155

각종 분포들의 수리적인 모형을 공부해두면 고급 알고리즘들을 익히는 데에 도움이 된다. 예를 들어 텍스트 마이닝에서 자주 쓰이는 LDA 토픽모델링은 각각의 문서가 여러 개의 주제를 지니고 있고 이러한 주제들이 디리클레분포를 따른다고 가정한다. - P155

수리통계학을 공부해두면 디리클레분포와 같은 다소 생소한 분포를 보게 되더라도 쉽게 이해할 수 있다. 왜냐하면 수리통계학을 공부하면 배우게 되는 결합분포(확률 변수가 여러 개일 때 이들을 함께 고려하는 확률분포), 주변분포(결합분포에서 어느 한 변수만을 고려하는 확률분포)와 같은 개념과 각종 수식에 사용되는 기호들은 모두 공통되기 때문이다. - P155

수리통계학에서 배울 수 있는 베이즈 정리, 최우추정법, 카이제곱 적합도 검정과 같은 정리, 기법 등은 AI 빅데이터 관련 공부를 하다 보면 끊임없이 나온다. 대표적으로 자주 쓰이는 알고리즘들도 깊게 들어가면 이러한 개념들이 빈번히 등장한다. 특히 논문을 읽어보면 이러한 개념들을 굉장히 자주 볼 수 있다. - P156

기본적으로 더 깊게 AI 빅데이터 분석에 대해서 공부하기 위해서는 이러한 기본개념들은 미리 알고 있어야 하는 것이다. - P156

개인적인 생각으로는 인터넷상에 나와 있는 미적분 공식들을 이해가 안 되어도 그냥 외우는 것이 가장 좋다. 다시 고등학교 미적분 수학책을 보고 있기에는 시간이 너무 아깝다. - P157

우리는 AI 빅데이터 분석의 알고리즘들을 이해할 수 있는 정도로만 공부하면 된다. - P157

책을 읽으면서 수식이 나오면 연습장에 그대로 따라 적으면서 이해를 한다. 이해가 되었으면 다음으로 넘어가고 이해가 안 되었으면 이해하기 위해서 조금 더 생각을 하거나 인터넷에서 해당 개념을 찾아본다. 그래도 이해가 안 되면 그냥 넘어간다. 절대 수식을 외우지는 않는다. 그리고 각 챕터별 연습문제가 나오면 연습문제 해답을 펼쳐놓고 이해하면서 그대로 답을 연습장에 적는다. 이때에 증명이나 유도하라는 문제는 건너뛴다. 예제 데이터 세트를 주고 값을 구하라는 문제 위주로 빠르게 살펴본다. 이런 식으로 하면 하루이틀이면 한 챕터 가량은 공부할 수 있을 것이다. - P158

각 이론에 대한 설명을 읽고 수식을 이해하고 기본 예제 데이터 세트에 어떻게 적용되는지 정도만 알면 된다. 즉 이해가 중요한 것이지 외울 필요는 절대 없다. - P158

사람들은 딥러닝에 왜 이렇게 열광할까? 가장 큰 이유는 정확도다. 기존에 많이 썼던 데이터 마이닝 기계학습 알고리즘에 비해서 월등히 좋은 정확도를 보이기 때문에 다들 딥러닝에 의존하는 것이다. - P159

딥러닝이 제대로 구현되기 위해서는 두 가지 요건이 필요하다. 충분히 많은 데이터의 양과 이를 연산할 수 있는 컴퓨터의 연산 능력이다. - P160

데이터가 적을 때에는 오히려 전통적인 방법론이 조금 더 우수하지만 데이터가 어느 정도 쌓이면 딥러닝의 정확도가 훨씬 높아짐 - P161

딥러닝도 단점이 있다. 우선 고성능 장비가 필요하며 학습하는 데에 시간도 비교적 오래 걸린다. 또한 정확도는 잘 나오는데 어떠한 이유로 결과가 나오는지 결과 해석이 어렵다. 흔히 블랙박스 모델이라고도 불리는 이유다. - P162

(딥러닝은) 데이터가 많으면 정확도가 잘 나오지만 데이터가 적으면 전통적인 방법에 비해서도 정확도가 떨어진다. 왜냐하면 작은 데이터 세트로 학습했을 때 너무 자세한 특징까지 다 모델이 학습하기 때문에 학습 데이터 이외의 다른 데이터 세트에는 오히려 잘 안 맞을 수가 있다. 이를 흔히 ‘과적합 문제‘라고 한다. - P162

전통적인 기계학습 알고리즘 중의 하나인 인공신경망을 깊은 구조로 만든 것을 딥러닝이라고 할 수 있다. - P163

보통 최근에 쓰는 딥러닝 구조들은 수십 개 이상의 은닉층hidden layer도 쉽게 구축하곤 한다. 은닉층의 각 뉴런(노드)에서는 활성화 함수라는 게 존재해 각 가중치를 조절해준다. 즉 뉴런의 개수가 많으면 많을수록 함수가 거듭해서 합성함수 꼴로 변해 어떠한 형태의 데이터도 복잡한 함수 형태로 표현할 수가 있는 것이다. - P164

뉴런의 개수가 많으면 많을수록 더 복잡한 형태의 함수 구현이 가능해 모델이 고도화되는 것이다. - P164

DNN이라고도 불리는 딥뉴럴넷(심층신경망) - P164

뉴런들을 구성하는 방식에 따라 다양한 방식으로 나타낼 수 있다. CNN, LSTM, AutoEncoder, RBM, GAN 등 뉴런과 그 뉴런을 연결하는 엣지 간의 네트워크를 어떻게 구성하느냐에 따라 다양한 형태의 모델이 생성 가능하다. 또한 각 모델들도 세부적으로 조금씩 레이어(layer)나 뉴런의 개수를 바꿀 수 있고 파라미터나 함수들을 다양하게 변화할 수 있기 때문에 사실 딥러닝 모델은 엄청나게 다양하게 생성할 수 있다. - P164

딥러닝을 공부하기 위해서는 이론을 먼저 익히고 프로그래밍 언어 실습을 하면 된다. 프로그래밍 언어를 먼저 설명하면 우선 대부분의 딥러닝 라이브러리들이 파이썬으로 제공되고 시중에 나와 있는 책들도 파이썬을 이용한 딥러닝이 대부분이기 때문에 파이썬으로 하는 것을 추천한다. - P165

이러한 개념들(경사하강법, 역전파법, 각종 활성화 함수들)은 딥러닝의 어떠한 구조를 만들더라도 공통적으로 쓰이는 개념이라 필수로 알고 있어야 한다. - P165

강의로 딥러닝 공부하기 : 홍콩 과기대 교수로 재직 중인 김성훈 교수가 올린 강의도 들을 만하다. 어려운 수식 없이 딥러닝의 탄생 배경과 기본 개념을 설명해준다. 또한 간단한 코드 예제도 제공된다. 무료로 들을 수 있고 수업 자료도 PDF로 제공해준다 https://www.inflearn.com/course/기본적인-머신러닝-딥러닝-강좌#. - P165

CNN, LSTM, 오토인코더, GAN 등 다양한 딥러닝 모델들을 공부하고 실제 예제 세트를 코드로 돌려보아야 한다. - P165

딥러닝을 구현하기 위한 라이브러리는 텐서플로를 비롯해 케라스Keras, 카페 Caffe, 파이토치 Pytorch, 티아노Theano 등 다양하다. 사실 각 라이브러리마다 각자 장단점이 있고 최신 논문의 알고리즘을 반영하는 시간이 조금씩 다르기 때문에 모두 다 알면 좋다. 하지만 이 책을 읽는 독자들은 이 중 한 개만 다루면 된다. - P166

어차피 정말로 최근의 논문 알고리즘이 아닌 이상 웬만한 딥러닝 알고리즘들은 어느 라이브러리나 다 제공해주고 있다. 나는 케라스를 추천한다. 이유는 구현하기 제일 쉽기 때문이다. 또한 케라스는 이용자가 많기 때문에 문제점이 생기면 구글에서 검색했을 때 쉽게 솔루션을 찾을 수 있다. - P166

코드도 모두 깃허브에 제공되고 케라스 코드 자체가 쉽기 때문에 실제 프로젝트를 수행할 때에 깃허브 코드를 조금씩만 변형해도 실전에 바로 사용할 수가 있다. - P167

빅데이터 시대를 맞이해 각종 새로운 데이터베이스가 쏟아져 나오고 있다. 가장 유명한 No-SQL인 몽고DB는 이미 구식 데이터베이스가 된 지 오래다. 엘라스티서치, 아랑고DB, 파우나DB, 카우치DB 등 새로운 데이터베이스가 너무나도 많이 생겨났다. - P168

솔직히 말하면 아직까지 웬만한 프로젝트는 기존 RDB 수준에서 다 해결된다. 소셜네트워크 데이터를 실시간으로 저장하거나 인기 웹사이트 유저 클릭, 뷰 로그데이터를 실시간으로 저장하는 정도여야 No-SQL이 필요한 정도다. - P169

빅데이터여서 No-SQL이 필요하다고 해도 몽고DB 정도면 대부분 해결된다. 몽고DB가 조인 쿼리가 없고 메모리 사용량이 크다는 단점이 있긴 하지만 큰 문제가 되진 않는다. 더군다나 몽고DB는 공부할 수 있는 책도 많고 공부할 내용도 많지 않아서 쉽게 사용할 수 있다. - P170

AI 빅데이터 전문가가 되기 위한 입문자들은 가장 기본적이지만 아직도 많이 쓰이는 RDB부터 공부해야 한다. RDB는우리말로 하면 관계형 데이터베이스다. 즉 키 key와 값value의 간단한 관계를 테이블화한 데이터베이스로 우리가 흔히 알고 있는 오라클, MsSQL, MySQL 등이 모두 RDB다. 특히 MySQL은 무료이기 때문에 대다수의 시작 단계의 프로젝트들은 MySQL DB로 채택한다. 따라서 여러분이 앞으로 가장 많이 다루어야 할 DB도 MySQL이 될 확률이 크다. - P170

RDB는 여러 제약 조건이 있다. 이게 사실 No-SQL과 가장 다른 점이고 RDB를 공부할 때에 많은 사람들이 어려워하는 내용이다. 키 값에 대한 제약 조건이 있고 무결성(개체 무결성, 참조 무결성)에 대한 제약 조건도 있다. - P170

데이터베이스 정규화라는 개념도 있다. 데이터베이스 정규화는 RDB의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스다. 쉽게 말해서 불필요한 데이터를 제거하고 데이터 저장 구조를 간결하고 논리적으로 바꾸어 SQL 쿼리를 쉽고 효율적으로 만들어준다. - P171

어렵지는 않지만 몇 가지 외워야 하는 사항들이 있다. 따라서 이러한 사항들은 반드시 숙지해두어야 한다. 기본적인 Update, Insert, Select, Delete SQL 쿼리와 Where, Join문 정도도 알고 있어야 한다. 왜냐하면 간단한 프로젝트들은 대부분 AI빅데이터 전문가에게 DB 구축 및 데이터 적재까지 맡긴다. 따라서 처음부터 테이블을 생성하고 데이터를 하나하나 Insert까지 해야 하는 상황이 꽤 많이 발생한다. 이러한 일들에 잘 대처하기 위해서는 지금 말한 개념들은 반드시 알고 있어야 한다. - P171


댓글(0) 먼댓글(0) 좋아요(8)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo