알라딘서재

읽고보고듣고쓰고
딥러닝이라는 것은 2개 이상의 은닉층으로 이루어진 신경망을 이용해 학습하는 머신러닝 알고리즘의 집합이다. 오늘 읽기 시작한 부분에서는 딥러닝 개발 이전과 이후 알고리즘 모델을 개발하는 방식의 차이에 대한 얘기가 나온다. 여기서의 핵심은 컴퓨터의 성능이 나날이 좋아짐에 따라 사람의 수고가 획기적으로 줄어들고 오히려 충분한 양의 데이터(빅데이터)를 확보하는 것이 훨씬 더 중요해졌다는 것이다.

딥러닝 이전에는 데이터를 학습하는 알고리즘에 연구자가 직접 적절한 변수들을 설정해야 했다. 예를 들어 이미지를 모델에 넣고 특정 클래스를 예측하는 모델을 만들 때 해당 이미지에 대한 특징feature값(이미지라면 질감, 명암, 색체, 엣지 정보 등)을 일일이 연구자가 설정해야 했던 것이다. 즉, 어떤 특징값을 모델에 넣는지가 모델 정확도를 올리는 데 가장 큰 역할을 했기에 연구자들은 특징값을 추출하는 알고리즘 연구에 매달렸다.- P77
딥러닝 시대에는 원시 데이터 Raw data 자체를 모델에 그대로 넣는다. 이미지를 예로 들면 RGB 픽셀값 원본을 그대로 넣는 것이다. 따라서 데이터 특징값을 추출하는데 들었던 사람의 판단과 노력이 거의 필요 없다. 다른 관점으로 생각하면 충분한 양의 데이터와 성능 좋은 컴퓨터만 있으면 알고리즘 모델을 손쉽게 만들 수 있는 것이다.- P77
임산부들이 임신 초기에 철분이 함유된 영양제를 주로 먹는다는 것을 알고리즘을 통해 알아낸- P80
랜섬웨어 : 컴퓨터 시스템에 문제가 되는 기능을 실행해 접근을 제한하고 일종의 몸값을 요구하는 악성 소프트웨어의 한 종류다.- P88
지능형 지속 공격Advanced persistent threat, APT : 오랜 기간 동안 지속해서 해킹을 시도해 개인 정보와 같은 중요한 데이터를 유출하는 것- P88
처음에 취업을 고려할 때는 해당 회사의 주요 고객사를 살펴볼 필요가 있다. 예를 들어 회사의 주요 고객사가 통신사 계열이라면 이동 통신 데이터와 관련한 AI 빅데이터 프로젝트를 접할 기회가 많을 것이다. 즉, 특정 분야의 실력을 쌓고 싶다면 자신이 관심 있어 하는 분야의 고객사를 많이 둔 회사를 찾는게 현명한 선택이다.- P93
외주 개발 프로젝트가 다른 회사의 개발 요청을 위탁받는 것이면 솔루션 개발 업무는 자사의 인공지능 서비스를 직접 개발하는 것이다.- P94
IT 회사 대부분은 회사마다 개발한 솔루션이 있다. 개별적으로 솔루션을 보유하고 있어야 회사 가치도 높아지고 솔루션 공급으로 안정적인 현금 흐름을 창출할 수 있기 때문이다.- P94
솔루션은 하나의 소프트웨어 제품이라고 보면 된다. 우리가 매일 컴퓨터를 켜면 사용하는 워드, 보안 프로그램, 결제 모듈, 메신저 등이 모두 솔루션의 하나고, 각각의 IT 회사가 만든 앱이다.- P94
AI 빅데이터 전문가의 업무는 크게 비즈니스 문제 확인 → 사용 가능한 데이터 파악 → 데이터 전처리(데이터 선택, 정제 및 변환) → 데이터 분석 및 모델링 결과 해석으로 진행된다.- P95
현실적으로 가장 최선의 방법은 프로젝트가 시작되었을 때 해당 비즈니스 분야에 대해서 빠르게 파악하고 문제점을 짚어내는 방법이다. 그러기 위해서는 해당 비즈니스 분야 전문가와의 협업이 필요하다. 비즈니스 분야 전문가의 지도 아래 해당 분야에 대해서 빠르게 익히고, 비슷한 비즈니스 분야에 적용되었던 AI 빅데이터 분석 사례들을 논문 및 서적을 통해서 파악해야 한다. 그 후 해결해야 할 문제점과 프로젝트 목표를 명확히 하고 이를 전체 구성원과 공유 및 합의해야 한다. 이 과정이 끝나야 실제 작업이 이루어지는 것이다.- P97
전체적인 비즈니스 산업에 대한 경영학적 지식, 구성원 사이의 원활한 커뮤니케이션 능력, 빠르게 논문 및 책을 읽어내려갈 수 있는 독해 능력 등이 필요하다.- P97
"많으면 많을수록 좋다"- P98
데이터는 간단한 엑셀 시트, 데이터베이스, 클라우드 서버 등 다양한 형태로 저장되어 있다. 그중 회사 수준의 프로젝트는 데이터베이스에 저장되어 있을 것이다. 데이터베이스는 크게 데이터의 관계를 정의해 저장한 관계형 데이터베이스Relational database, RDB와 다양한 형태의 데이터베이스를 조합해 사용하는 NoSQL로 나눈다.- P98
관계형 데이터베이스와 NoSQL를 관리하는 다양한 데이터베이스 관리 시스템Database management system (이하 DBMS)도 존재한다. 따라서 AI 빅데이터 전문가는 DBMS 별로 데이터를 관리하는 명령을 내리는 쿼리를 익혀야 한다. 물론 DBMS 별 쿼리 사용방법이 비슷하고 현업에서 많이 사용하는 DBMS가 몇 가지여서 처음에 공부를 바짝하면 나중에는 어렵지 않다.- P98
이 단계(사용 가능한 데이터 파악)에서 AI 빅데이터 전문가는 쿼리를 적절히 실행해 다양한 관점에서 데이터를 파악하는 탐색적 데이터 분석 Exploratory data analysis, EDA를 한다. 탐색적 데이터 분석은 데이터별 변수 이름이나 설명 확인, 변수별 기초적인 통계값 확인, 데이터에 이상한 값이나 해당 시점에서 정해지지 않은 값(결측값) 등으로 문제가 있는지 확인, 변수 각각의 값이 예측한 범위나 분포를 갖는지 확인, 변수 사이의 상관관계 등을 살펴보는 과정이다.- P99
데이터 파악이 끝났다면 데이터 선택, 정제, 변환 등을 하는데 이를 데이터 전처리 단계라고 한다. 데이터를 분석할 때 가장 시간 소요가 큰 단계이기도 하다.- P99
특정 기준으로 정리되지 않은 텍스트와 같은 비정형 데이터의 경우는 AI 빅데이터 분석이 가능한 통계값 또는 벡터 형태로 변환해야 한다.- P99
"쓰레기를 넣으면 쓰레기가 나온다garbage in, garbage out"라는 것은 데이터 분석의 기본 전제다. 즉 데이터 전처리를 가볍게 여기면 쓸모없는 결과가 나올 수밖에 없다.- P100
데이터를 제대로 전처리하지 못하는 예는 센서 데이터에서 국가별 시간의 차이를 GMT로 통일하지 않는 경우가 있다. 또는 어떤 변수는 1000, 어떤 변수는 1(K)로 표기하는 것처럼 숫자 단위를 통일하지 않고 들쭉날쭉하게 적용하여 똑같은 값을 제대로 처리하지 못할 수도 있다. 문자나 카테고리와 같은 데이터 타입 전처리 오류도 빈번하게 발생하는 문제점이다. 머신러닝 알고리즘을 적용할 때 변수를 정규화를 하지 않아 알고리즘 모델이 적합fitting 한 상태를 학습하지 못할 수도 있다.- P100
정규화 : 머신러닝의 학습에서 데이터에 있는 특성이 모두 비슷한 영향을 끼치도록 적절하게 값을 바꾸는 것을 말한다.- P100
머신러닝 알고리즘은 크게 지도 학습, 준지도 학습, 비지도 학습, 강화학습 등으로 나누며, 분류, 수치 예측, 군집화 등으로 세분화할 수 있다. 또한 분류에는 서포트 벡터 머신, 트리, 신경망 등이 있고 수치 예측에는 분류에서 소개한 세 가지 알고리즘에 선형회귀가 추가된다. 군집화는 K-평균, 계층적 군집화, 밀도 기반 군집화 Density-based spatial clustering of applications with noise, DBSCAN, 자기조직화지도 self-organizing map, SOM 등이 있다.- P101
파이썬으로 서포트 벡터 머신을 이용한 클래스 분류를 구현해 학습시킬 때는 사이킷런 Scikit-learn 이라는 라이브러리를 활용하면 좋다.- P107
논문에 소개된 모델들을 실제 구현하고 싶다던가, 깊이 있는 딥러닝 모델 네트워크를 구성하고 싶다던가, 자신만의 독창적인 모델을 만들고 싶다면 필연적으로 알고리즘의 원리를 수학적으로 알아야 한다.- P109
AI 빅데이터 분석을 위해서 가장 많이 사용하는 수학 개념은 수리통계학과 선형대수학이다.- P109
머신러닝 알고리즘 관련 책이나 논문을 보면 각종 확률과 분포를 활용하여 알고리즘을 구성하는 경우가 많다. 베이즈 정리 Bayes theorem, 최대가능도추정법 Maximum Likelihood Estimation Method, 카이제곱적합도 검정chi-squared goodness of fit test, 정규분포Normal distribution, 결합분포joint distribution, 주변분포Marginal distribution 등의 용어는 모두 수리통계학을 공부할 때 나온다.- P110
선형대수학Linear algebra은 무엇일까? 역시 위키백과를 찾아보면 "벡터 공간, 벡터, 선형 변환, 행렬, 연립 선형 방정식 등을 연구하는 대수학의 한 분야이다"라고 설명한다. 역시 저자의 관점에서 선형대수학은 딥러닝을 수학적으로 이해하는 데 굉장히 중요한 행렬과 벡터를 공부하는 학문이라고 생각한다.- P110
딥러닝은 신경망 모델을 어떻게 구성하느냐에 따라 무한한 딥러닝 모델이 생성될 수 있다. 따라서 신경망 모델은 정확도를 높일 수 있는 아이디어와 철학을 담고 구성해야 한다. 이때 당연히 수학적 개념이 중요하다.- P111
여러분이 미적분, 행렬, 벡터를 배우지 않았으면 이러한 개넘은 미리 배워두어야 한다.- P111
개념을 이해하는 것이 중요하므로 수학을 공부할 시간이 정말 없다면 인터넷상에 나와 있는 미적분공식, 행렬 및 벡터 연산 법칙을 이해가 되지 않아도 그냥 외우는 것부터 시작하기를 추천한다.- P111
미적분, 행렬, 벡터 등의 개념을 살펴본 후 충분히 공부할 여유가 있다면 강의를 듣는 것이 좋다. 수리통계학이나 선형대수학은 대학교 교과 과정으로 많이 가르치며 유니와이즈, 에듀캐스트, 큐스터디와 같은 인터넷 강의 업체에도 관련 강의가 있다. 보통 과목당 50강 이상인데, 열정을 갖고 열심히 다 들으면 좋다.- P111
네이버에서 제공하는 무크 MOOC 플랫폼인 에드위드 edwith에 무료로 등록된 KAIST 주재걸 교수의 ‘인공지능을 위한 선형대수‘ 나 대표적인 프로그래밍 교육 유튜브인 프리코드캠프freeCodeCamp의 Linear Algebra - Full College Course‘- P113
데이터 마이닝을 학술적인 용어로 설명하면 통계학에서 배우는 가설검정, 시계열 분석, 선형모델 방법론과 인공지능에서 배우는 신경망, 군집화, 연관성 분석 등을 조합해 가치 있는 데이터를 추출하는 것이다. 쉽게 말하면 수많은 데이터 안에서 패턴을 찾아내어 가치 있는 정보를 뽑아내는 것이다. 그래서 채굴, 채광이라는 뜻을 지닌 ‘마이닝‘이란 단어를 결합한 것이라고 생각한다. 데이터 마이닝과 관련된 방법들은 인공지능 빅데이터 분석의 가장 기본이며 시대와 상관없이 중요한 개념이므로 꼭 알아야 한다.- P115
데이터 마이닝 방법론을 몇 가지 카테고리로 나누면 다음과 같다.

・분류(Classification): 데이터를 미리 구분된 일정한 집단으로 분류한다.

・군집화(Clustering): 전체 데이터를 구체적인 특성을 공유하는 군집들로 나눈다. 군집화는 미리 정의된 특성에 대한 정보를 갖지 않는다는 점에서 분류와 다르다.

・연관성(Association): 동시에 발생한 사건 사이의 관계를 정의한다.

・예측(Forecasting): 데이터셋 안의 패턴을 기반으로 앞으로 나올 수 있는 값을 예측한다.

・이상값 탐색(Oulier): 패턴에 벗어난 데이터를 찾는다.- P116
분류 모델은 최적의 상태로 데이터를 분류하는 y=f라는 함수를 찾는 과정이라고 보면 된다. 이 함수에 사용할 수 있는 알고리즘으로는 결정 트리, 서포트 벡터 머신, 베이즈 분류 등이 있다.- P117
분류는 모델을 구성하는 학습 단계training와 구성한 모델을 통해 주어진 데이터의 클래스 레이블(정답)을 예측하는 분류 단계Classification 로 나눌 수 있다.- P117
주의해야 할 점은 학습 데이터셋으로 모델을 만든 후 다시 학습 데이터셋으로 테스트하면 안 된다는 것이다. 그러면 실제보다 모델 성능이 훨씬 좋게 보일 우려가 있다. 이러한 현상을 과적합Overfitting이라고 한다. 이는 어떤 학생(모델)에게 문제 세트 A (학습 데이터셋)를 공부시킨 후 실제 시험에 같은 문제 세트 A (학습 데이터셋)를 내놓는 것과 같다. 당연히 학생(모델)은 공부한 문제가 나왔으니 실제 실력보다 시험에서 높은 점수를 받을 것이고 진정한 실력이 아님은 모두가 이해할 것이다.- P119
군집화는 데이터 집합을 여러 개의 그룹(군집)으로 나누는 작업을 말한다. 영어로는 클러스터링이라고 한다. 그룹 하나 안에 포함된 데이터들은 서로 굉장히 비슷하며, 다른 그룹의 데이터들과 비슷한 점이 없다. 아무튼 핵심은 유사성을 가려내는 방식이다. 이 유사성은 데이터의 속성값을 이용해 판단하며, 주로 값들을 좌표평면에 나타낸 후 서로 얼마나 가까운 거리에 있는지를 파악하는 방법을 사용한다.- P119
거리 측정법은 유클리디언 거리, 마할라노비스 거리, 민코스키 거리, 코사인 유사도 등 여러 가지가 있다. 어떤 거리 측정법이 좋다고 단정할 수는 없지만 데이터의 특성에 따라 주로 많이 사용하는 거리 측정법이 있다. 예를 들어 텍스트 데이터의 경우 코사인 유사도를 많이 사용한다.- P120
군집화는 보통 시장 조사할 때 비슷한 고객 데이터들을 묶어서 세분화하는 데 사용되곤 한다. 그 결과로 고객 그룹을 세분화하면 각기 다른 맞춤형 마케팅 전략을 펼칠 수 있다. 가짜 뉴스나 스팸 메일을 필터링하는 데도 사용할 수 있다. 가짜 뉴스, 스팸 메일 데이터를 대상으로 군집화를 수행하고 새로운 데이터가 나타났을 때 가짜 뉴스나 스팸 메일이 속한 그룹에 포함되면 가짜 뉴스나 스팸 메일로 필터링하는 방식이다. 비슷한 방식으로 웹 사이트에서 악성 트래픽을 차단하거나 사기/이상 징후 패턴도 군집화를 이용해 파악할 수 있다.- P120
텍스트 문서도 군집화가 많이 활용되는 대상이다. 대량의 문서(ex: 온라인 뉴스)에서 원하는 주제들만 모아서 문서를 보고 싶을 때 자주 활용된다.- P120
군집화는 분류와 다르게 정답에 해당하는 클래스 레이블이 없다. 즉, 비슷한 데이터가 모인 그룹이지만 해당 그룹이 무엇을 의미하는지 명확하게 알 수 없다. 따라서 분류에 비해서는 다소 정확도가 떨어질 수 있지만 애초에 정답에 해당하는 클래스 레이블 데이터가 없는 상황이라면 유용하다.- P120
군집화도 알고리즘에 따라 여러 가지 방법을 선택할 수 있다. 대표적으로 K-평균(K-means), 군집화, K-중앙자(K-medoid) 군집화, 구조적 군집화, DBSCAN, SOM, CLIQUE 등이 있다.- P120
K-평균 군집화는 그룹에 포함된 데이터의 공간상 평균 지점을 그룹의 중앙으로 정의한다. 먼저 전체 데이터에서 임의의 k개의 데이터를 선택한 후 이를 그룹의 중앙에 해당하는 데이터로 정한다. 그리고 나머지 데이터와의 거리를 계산해서 k개 중앙점과 가장 가까운 데이터라면 그룹 안에 포함시킨 후, 해당 그룹의 중앙을 새로 정한다. 다음으로는 새로운 중앙점을 바탕으로 다시 모든 데이터들을 재배치한다. 이 작업을 반복적으로 수행하면 더 이상 반복을 해도 그룹에 속하는 데이터들의 변화가 없어진다. 그럼 알고리즘 실행이 종료되는 것이다.- P121
최적의 k개를 어떻게 정하느냐도 연구 주제다. 실루엣 스코어silhouette score나 엘보 기법Elbow method을 활용한다. 이렇듯 데이터 마이닝은 데이터 각각에 알고리즘이 적용되는 부분이 많아서 공부할 범위가 꽤 방대하다.- P122
연관성은 서로 연관 있는 항목들을 알고리즘을 통해 추출하는 것이다.- P122
고객 4명의 전체 구매 데이터에서 PC를 구매한 사람이 3명, 백신 프로그램을 구매한 사람이 2명이고 PC와 백신 프로그램을 함께 구매한 사람이 2명이라고 생각해보자. 그럼 연관성에서는 전체 구매 데이터에서 모든 상품을 구매한 비율인 지지도support가 50%, 지지도를 PC를 구매한 사람의 비율로 나눈 신뢰도Confidence는 67%라고 할 수 있다. 또한 신뢰도에서 백신 프로그램을 구매한 사람의 비율로 나눈 향상도는 134%다. 보통 연관성에서는 향상도가 100%보다 높으면 서로 연관성이 높다고 여기며 향상도가 정확하게 100%면 독립적인 관계, 100%보다 낮으면 서로 연관성이 낮다고 여긴다. 따라서 컴퓨터와 백신 프로그램은 서로 연관성이 높은 후보군이라고 볼 수 있다.- P123
연관 규칙 분석 알고리즘A priori algorithm이 있다(장바구니 분석이라고도 한다). 모든 데이터를 대상으로 앞에서 설명한 연관성을 계산하기에는 연산 비용이 많이 들기 때문에 이를 좀 더 효율적으로 계산하려는 것이다.- P123
집합 여러 개가 있을 때 P(A)보다 낮은 지지도가 될 것으로 예상되는 A와의 교집합은 아예 지지도, 신뢰도, 향상도를 연산할 때 제외해도 상관없다. 이것이 연관 규칙 분석 알고리즘의 핵심이다.- P124
통계적으로 아웃라이어를 판단하기도 한다. 보통 정상 데이터들을 특정 확률 모델에 따라 추정한 후 새로운 데이터 x를 해당 확률 모델에 적용했을 때 확률밀도함숫값이 작을수록 x가 아웃라이어일 확률이 높다고 판단한다.- P127

  • 댓글쓰기
  • 좋아요
  • 공유하기
  • 찜하기
로그인 l PC버전 l 전체 메뉴 l 나의 서재