본문 바로가기
Review/Book

[IT] 딥러닝 텐서플로 교과서

by 눈부셔™ 2023. 6. 6.
728x90

인공지능, 머신러닝과 딥러닝은 최근 몇 년간 기술분야에서 가장 인기 있는 주제 중에 하나로 뽑힌다.  
인공지능(AI)은 인간의 지능을 모방하여 사람이 하는 일을 컴퓨터가 할 수 있도록 하는 기술이고, 인공지능을 구현하는 방법으로 머신 러닝과 딥러닝이 있다. 
머신 러닝, 즉 기계학습은 인공지능의 한 분야로, 컴퓨터 스스로 대용량 데이터에서 지식이나 패턴을 찾아 학습하고 예측을 수행하는 것이다. 즉, 컴퓨터가 학습할 수 있게 하는 알고리즘과 기술을 개발하는 분야라고 할 수 있다. 
딥러닝은 인간의 신경망 원리를 모방한 심층 신경망 이론을 기반으로 고안된 머신 러닝 방법의 일종이다. 


머신 러닝과 딥러닝 모두 학습 모델을 제공하여 데이터를 분류할 수 있는 기술이지만, 머신 러닝은 주어진 데이터를 인간이 먼저 전처리를 해서 컴퓨터에 인식시키고 학습시켜 문제를 해결한다면, 딥러닝은 인간이 하던 전처리 작업을 생략하고 대량의 데이터를 신경망에 적용하여 컴퓨터가 스스로 분석한 후 답을 찾는다. 


그런 머신러닝과 딥러닝 테크닉을 배우고 알고리즘을 구현하는데, 파이썬은 가장 선호하는 언어로 올랐다. 
파이썬은 방대한 라이브러리 컬렉션을 가지고 있고, 다른 프로그래밍 언어에 비해 배우기도 수월하기 때문이다. 
머신러닝과 딥러닝은 많은 수학적인 계산과 연산, 특히 행렬과 관계가 깊고, 파이썬에는 NumPy, Pandas, Matplotlib 등의 해당 라이브러리들이 있다. 


딥러닝을 구현하는데 필요한 가장 기본 골조가 되는 딥러닝 프레임워크 중에 대표적인 것은 구글의 텐서플로와 케라스, 메타의 파이토치 등이 있다. 
텐서플로우는 데이터 플로우 그래프를 통해 풍부한 표현이 가능하고, 계산 구조와 목표 함수만 정의하면 자동으로 미분 계산도 처리하지만, 메모리를 효율적으로 사용하지 못하고 초보자가 접근하기엔 어려운 단점이 있다. 
케라스는 사용자 친화적이고 모듈 확장성이 있어서 일관되고 간결한 API를 제공하며 배우기 쉽고 모델 구축이 쉬운 반면, 문서화가 제대로 되어 있지 않고 아직 사용자수가 적어 참고할 곳이 부족하다. 
파이토치는 익히기 쉽고 간결하며 그래프를 만들면서 동시에 값을 할당하는 Define by run 방식을 사용하기 때문에 구현이 비교적 빠르지만, 텐서플로우에 비해 학습에 필요한 예제를 구하기 쉽지도 않고, 텐서플로우보다 디테일한 모델링이 불가능하다. 


그렇다면 어떤 프레임워크가 가장 좋고 나는 어떤 것을 배우면 좋을까? 최근 딥러닝 관련 논문이나 업계에서는 텐서플로우보다는 연산도 가능하고 속도도 빠른 파이토치를 선호하는 추세라고는 하지만, 현시점에 뭐가 더 낫고 별로다 하는 정답은 없는 것 같다. 
딥러닝 프레임워크 자체가 복잡하고 다루기 까다로운 만큼, 내가 기초부터 좀 더 쉽게 이해하고 지식을 쌓을 수 있는 책이 "딥러닝 텐서플로 교과서" 이 책 같았고, 파이토치 서적보다 텐서플로 서적이 많아서 이 책을 선택하게 되었다.

머신 러닝의 핵심 알고리즘인 의사결정트리, K-최근접이웃, SVM, 로지스틱 회귀분석인 지도학습과 K-평균 군집화, 밀도기반군집분석, 주성분 분석인 비지도 학습의 기초 개념 설명과 딥러닝에 대한 이론뿐 아니라 텐서플로를 이용한 구현 방법을 함께 설명하고 있다.  
딥러닝은 범위가 방대하고 내용을 이해하는 것도 쉽지 않아서 인지, 신경망 별로 깊이 있는 내용은 부족하고, 지은이의 서문에서도 깊이 있는 학습을 위해서는 논문을 살펴보는 것을 추천하고 있다. 

 

728x90

아직 당행의 제반사항은 DT의 걸음마 단계에도 못 미치지만, 앞으로 딥러닝으로 당행에 적용할 수 있는 것이 무엇이 있을지 생각해보며 적어본다. 
 
우선 첫째, DT본부에서 추진 중인 알집사, 즉 챗봇시스템 도입이다. 상담원의 통화대기를 하염없이 기다리는 고객은 불평이 커지기 마련이다. 반복적인 단순 질문으로 지연될 수 있는 상담업무를 챗봇시스템이 해결해 줄 수 있다. 하지만 고객들이 필요한 정보와 얼마나 알맞은 정보를 제공할 수 있을지가 관건인데, 이를 딥러닝으로 어느 정도 보완할 수 있다. 고객 서비스에 정확한 대응을 하기 위해서는 통계적 특성과 상담 내용(텍스트 또는 음성) 등 다양한 데이터를 모델링에 사용할 수 있다. 또 상담 내용 데이터는 챗봇 성능 고도화에 사용될 뿐만 아니라 추가적으로 분석해서 고객 성향과 향후 추천해주면 좋을 법한 상품까지 예측하도록 도와줄 수 있는 고급 데이터 이다. 
 
둘째, 금융업계에서 이미 활발히 연구중인 FDS(이상거래탐지)가 있다. 기존에는 룰 기반으로 이상 거래를 탐지하던 방식은 시간이 지날수록 정교화되는 거래사기를 잡아내기엔 제한적이기 때문에 많은 금융업계에서 머신러닝과 딥러닝으로 고도화를 꾀하고 있다. 기존 고객이 사용하던 거래 패턴과 사기 거래 패턴의 전체적인 차이를 인식해서 알려줄 수 있는 모델링 작업이 필요하다. 
 
셋째, 상품 추천과 이탈고객예측 
상품 추천이 중요한 이유는 고객을 끌어들이는 것도 있지만, 이탈 고객을 방지하는 것도 그에 못지않게 중요하기 때문이다. 상품 추천은 유튜브나 넷플릭스의 추천시스템처럼 예적금, 대출, 공제 상품도 파트너뱅킹이나 헤이뱅크의 로그인 첫화면에 배치할 수 있도록, 고객 개인화된 상품추천이 필요하다. 
고객에게 마케팅으로 보내는 스팸 이메일이나 문자도 무작정 대량으로 보내는 것이 아니라, 딥러닝 모델을 사용해서 고객을 더욱 정확히 파악하고 이를 통해 1번의 문자로 고객의 이탈을 방지할 수 있도록 정교화 할 필요가 있다. 
이게 전부 돈이고 마케팅 비용이다.

728x90