on
딥러닝이란 무엇인가? 공부하는법
딥러닝이란 무엇인가? 공부하는법
반응형
데이터베이스와 딥러닝의 관계에 대해서 알아보도록 하자. 엄청나게 뛰어난 정확도로 대세가 되어버린 딥러닝이다. 최근 딥러닝이라는 키워드가 화두가 되면서 딥러닝이 무엇인지는 몰라도 해당 용어를 한 번쯤 들어보았을 것이다. 딥러닝은 2016년 알파고와 이세돌의 대결로 일반인들에게 알려지기 시작했다 그리고 불과 몇 년 안 되어 최근에는 it 서적에서 가장 잘 팔리는 분야이자 각 기업에서 가장 요구하는 기술로 발돋움했다. 사람들은 딥러닝에 왜 이렇게 열광할까 가장 큰 이유는 정확도다 기존에 많이 썼던 데이터 마이닝 기계 학습 알고리즘에 비해서 월등히 좋은 정확도를 보이기 때문에 다들 딥러닝에 의존하는 것이다 도쿄신 딥러닝과 전통적인 알고리즘의 성능 차이 단 딥러닝이 제대로 구현되기 위해서는 두 가지 요건이 필요하다. 충분히 많은 데이터의 양과 이를 연산할 수 있는 컴퓨터의 연산 능력이다. 과거에는 당연히 두 가지 모두 충분히 충족되지 않았기 때문에 딥러닝 구현이 어려웠다 하지만 최근에는 각종 사물의 센서 인터넷 플랫폼 등에서 엄청나게 많은 데이터가 쏟아져 나오고 gpu의 발달로 컴퓨터의 연산 능력도 엄청나게 증가했다. 따라서 과거 이론으로만 생각했던 딥러닝을 실제로 구현이 가능하게 된 것이다 도표 십은 딥러닝과 기존 전통적인 데이터 마이닝 방법론들의 성능을 대략적으로 나타내었다 데이터가 적을 때에는 오히려 전통적인 방법론이 조금 더 우수하지만 데이터가 어느 정도 쌓이면 딥러닝의 정확도가 훨씬 높아짐을 확인할 수 있다 도쿄 시대 이미지의 대외 정확도 조금 더 구체적인 수치를 예로 들면 다음과 같다. 조금 오래된 사건이지만 이미지 넷에서 100개의 클래스와 100만 개의 이미지로 구성되어 있는 데이터로 정확도를 겨루는 이미지의 챌린지라는 대회가 있었다 과거에는 전통적인 기계 학습 방법론으로 정확도 75센트를 넘지 못하고 있었다 하지만 2012년 최초로 딥러닝을 이용한 방법이 나타나 무려 85%의 정확도를 보이는 사건이 일어났다. 그 이후 모델이 계속 보완되어 2015년에는 부표 11에서 보는 바와 같이 95%까지 올라왔다 물론 현재는 98퍼센트 수준까지 모델의 정확도가 올라온 상태다. 기계 학습 방법으로는 75% 수준밖에 안 되었는데 무려 20% 이상 정확도를 끌어올렸으니 대단하지 않은가 딥러닝에 사람들이 열광하는 이유는 이렇게 정확도 측면에서 성능이 좋기 때문이다 물론 딥러닝도 단점이 있다 우선 고성능 장비가 필요하며 학습하는 데 시간도 비교적 오래 걸린다. 또한 정확도는 잘 나오는데 어떠한 이유로 결과가 나오는지 결과 해석이 어렵다. 흔히 블랙박스 모델이라고도 불리는 이유다 예를 들어 회귀 분석 같은 경우는 변수마다 회귀 계수라고 불리는 수치가 있어서 어떠한 변수가 얼마만큼 모델에 유의미한 영향력을 끼치는지 알 수 있다 즉 결과에 대한 해석이 가능하다 하지만 딥러닝은 결과는 잘 나오는데 어떠한 이유로 이러한 결과가 나오는지 알기 어렵다. 또한 데이터가 많으면 정확도가 잘 나오지만 데이터가 적으면 전통적인 방법에 비해서도 정확도가 떨어진다. 왜냐하면 작은 데이터 세트로 학습했을 때 너무 자세한 특징까지 다 모델이 학습하기 때문에 학습 데이터 이외의 다른 데이터 세트에는 오히려 잘 안 맞을 수가 있다. 이를 흔히 과적한 문제라고 한다 아무튼 이러한 단점들이 있음에도 불구하고 사람들은 딥러닝에 열광하고 있다 그리고 이러한 단점들이 점차 보완될 것이기 때문에 앞으로 점점 더 딥러닝이 각광받을 것임은 틀림없다. 딥러닝 어떻게 공부할 것인가. 지금까지 딥러닝이 몇 가지 단점이 존재함에도 엄청나게 높은 정확도로 각광받고 있다고 설명했다 그러면 도대체 딥러닝이란 무엇인가. 전통적인 기계 학습 알고리즘 중에 하나인 인공신경망을 깊은 구조로 만든 것을 딥러닝이라고 할 수 있다. 도표 시비를 보면 전통적인 인공신경망의 구조다 가운데 은리층이 한 개밖에 없다 반면에 도표 13회 딥러닝은 은닉층이 두 개 이상인 구조를 말한다. 그림에서는 3개가 있는데 보통 최근에 쓰는 딥러닝 구조들은 수십 개 이상의 은닉 층도 쉽게 구축하곤 한다. 은닉층의 각 뉴런 노드에서는 활성화 함수라는 게 존재해 각 가중치를 조절해 준다 즉 위원의 개수가 많으면 많을수록 함수가 거듭해서 합성 함수꼴로 변해 어떠한 형태의 데이터도 복잡한 함수 형태로 표현할 수가 있는 것이다 이해가 안 간다면 이것만 이해해도 좋다. 뉴런의 개수가 많으면 많을수록 더 복잡한 형태의 함수 구현이 가능해 모델이 고도화되는 것이다. 도표 시비 인공신경망 도표 13 심층 신경망 딥 뉴럴넷. 과거에는 은닉층을 늘리면 컴퓨터가 연산을 하지 못했다. 연산하는 데 시간이 너무 오래 걸렸기 때문이다 하지만 지금은 연산 속도가 빨라져 가능하기 때문에 더욱 복잡하고 정교한 딥러닝 모델들이 구축되고 있다. 도표 13에서 본 구조는 dna이라고도 불리는 딥 뉴럴넷이지만 뉴런들을 구성하는 방식에 따라 다양한 방식으로 나타낼 수 있다. cnn lstm 오토 인코더 알비m gem 등 뉴런과 그 뉴런을 연결하는 에츠 간의 네트워크를 어떻게 구성하느냐에 따라 다양한 형태의 모델이 생성 가능하다 또한 각 모델들도 세부적으로 조금씩 레이어나 뉴런의 개수를 바꿀 수 있고 파라미터나 항수들을 다양하게 변화할 수 있기 때문에 사실 딥러닝 모델은 엄청나게 다양하게 생성할 수 있다. 1 책으로. 딥러닝 공부하기 딥러닝을 공부하기 위해서는 이론을 먼저 익히고 프로그래밍 언어 실습을 하면 된다. 프로그래밍 언어를 먼저 설명하면. 우선 대부분의 딥러닝 라이브러리들이 파이썬으로 제공되고 시중에 나와 있는 책들도 파이썬을 이용한 딥러닝이 대부분이기 때문에 파이썬으로 하는 것을 추천한다 이론을 공부하기 위해서는 딥러닝 제대로 시작하기 재입법을 추천한다 이 책은 딥러닝을 시작하는 입문자들에게 가장 기본적인 것들을 알려준다. 예를 들어 경사 하강법 역전파법 각종 활성화 함수들에 대해서 수식으로 자세히 설명해 준다 이러한 개념들은 딥러닝의 어떠한 구조를 만들더라도 공통적으로 쓰이는 개념이라 필수로 알고 있어야 한다. 이 강의로 김나림 공부하기 또는 홍콩 과기대 교수로 재직 중인 김성훈 교수가 올린 강의도 들을 만하다 어려운 수식 없이 딥러닝의 탄생 배경과 기본 개념을 설명해 준다 또한 간단한 코드 예제도 제공된다 무료로 들을 수 있고 수업 자료도 pdf로 제공해 준다 기본적인 머신 러닝과 딥러닝 강조 사이트 3 좀 더 깊게. 딥러닝 공부하기 그다음으로는 밑바닥부터 시작하는 딥러닝 한빛 미디어를 추천한다. 딥러닝 제대로 시작하기와 비슷한데 좀 더 깊숙한 내용까지 다루며 기본적인 코드 예제도 다룬다 여기까지 하면 딥러닝 기초는 어느 정도 다질 수 있다 그 다음으로는 cnn lstm 오토 인코더 지에이엔 등 다양한 딥러닝 모델들을 공부하고 실제 예제 세트를 코드로 돌려보아야 한다 딥러닝을 구현하기 위한 라이브러리는 텐서플로를 비롯해 캐라스 카페 화이토치 티아노 등 다양하다 사실 각 라이브러리마다 각자 장단점이 있고 최신 논문의 알고리즘을 반영하는 시간이 조금씩 다르기 때문에 모두 다 알면 좋다. 하지만 이 책을 읽는 독자들은 이 중 한 개만 다루면 된다. 어차피 정말로 최근의 논문 알고리즘이 아닌 이상 웬만한 딥러닝 알고리즘들은 어느 라이브러리나 다 제공해주고 있다. 나는 캐라스를 추천한다. 이유는 구현하기 제일 쉽기 때문이다 또한 캐나스는 이용자가 많기 때문에 문제점이 생기면 구글에서 검색했을 때 쉽게 솔루션을 찾을 수 있다 아래 그림을 보면 텐서플로 다음으로 케라스의 관심도가 높음을 알 수 있다. 현재에는 그 관심도가 더 높아졌을 것이다 도쿄 14 구글이 조사한 딥러닝 라이브러리 관심도 순위 책은 캐나스 창시자에게 배우는 딥러닝 길벗을 강력하게 추천한다 이 책 한 권만 제대로 이해해도 웬만한 딥러닝 모델들을 구현할 수 있다 코드도 모두 기터브에 제공되고 케라스 코드 자체가 쉽기 때문에 실제 프로젝트를 수행할 때 디터브 코드를 조금씩만 변형해도 실전에 바로 사용할 수가 있다 한 가지 단점이라면 각 딥러닝 모델들에 대한 자세한 설명은 없다. 기본적인 개념과 어떠한 결과를 도출할 수 있는지 설명이 없다는 점이다. 하지만 어차피 자세한 설명을 적어두어도 여러분이 다 이해하기 어렵고 모든 딥러닝 모델들에 대한 참조 논문들은 주석으로 제시해 주었기 때문에 관심 있는 사람은 직접 논문 읽어보는것을 추천한다. 이상으로 데이터베이스와 딥러닝의 관계에 대해서 알아보았다. 다음에는 좀더 심화 있는 내용으로 포스팅을 하겠다.
반응형
from http://grabgrab.tistory.com/23 by ccl(A) rewrite - 2021-10-03 19:27:10