딥러닝 (CNN, RNN) 간단히 알아보기
우선 이 말을 하기 전에 인공지능 머신러닝 인공신경망 딥러닝 에 대해 살펴본다
인공지능 > 머신러닝 > 인공신경망 > 딥러닝
인공지능이 이 모든 것을 포함하는 개념이다
머신러닝은 학습데이터가 갖고 있는 것을 가지고 추출 요약 하는 것이다.
이것을 결과로 뽑아내는 것이다
입력데이터가 머신러닝을 거쳐 학습데이터가 들어오고, 모형 안으로 들어간다. 그래서 결과값을 뽑아낸다
머신러닝이 가장 잘 하는 것은 사진 판별을 통한 사물 분류이다
고양이 / 강아지 사진을 보여주고 학습시킨 다음에 판별하는 것이다
그리고 이 전 시간에 배웠던 인공신경망은 hidden layer를 몇 개 만들어서 입력층과 출력층 사이에 위치한다
하지만 인공신경망은 단점이 하나 있는데, 층이 깊어지면, 오차들이 생긴다는 점이다. 과적합 위허밍증가한다
입력 노트 수가 많아지면, 과적합 위험이 증가한다.
이를 Vanishing Gradient Problem 이라고 하는데, 층이 깊어지면 의미는 오류를 전달하지 못한다
이를 극복한것이 딥러닝이다
딥러닝의 층이 깊어지면, 의미 있는 오차들이 사라진다
인공신경망은 여러 층을 쌓아야 되는데 딥러닝은 1층 1층을 비지도학습 방법으로 학습한다.
딥러닝의 주요한 장점은 특징 자체를 스스로 학습한다
feature 추출하는 건 분석가의 몫
ex> 대출자의 어떤 걸 봐야 할까? 이걸 분석가가 정하는 것이다. 그런것 조차도 딥러닝에서는 컴퓨터가 할 수 있다.
CNN 가지고 이미지. 인풋은 모두 이미지이다. label은 줘야 한다
라벨링 하지 않고 이미지만 줘도 스스로 필터를 만들고 사람 얼굴을 찾아낸다.
|
딥러닝 주요 기법들 • CNN(Convolutional Neural Network) • RNN(Recurrent Neural Network) • 강화학습 • GAN • 전이학습 |
CNN(Convolutional Neural Network)
이미지 인식 전통적인 인공신경망은 공간적인 정보를 사용하지 못함
이걸 뉴럴테트워크에 넣으려면 엄청 많이 넣어야 한다
이미지 한 장에 28*28 이미지를 784개 1줄 사용한다
RNN(Recurrent Neural Network)
순차정보 처리
단어들이 순차적으로 들어오는 걸 목표로 한다.
주가예측에 성능을 발휘한다
자연어 처리에 좋은 성능 / 언어 모델링과 텍스트 생성
자동번역 , 음성 인식 , 이미지 캡션 생성
강화학습
알파고
스스로 배운다. 하지만 항상 쓸 수는 없다. 혼자 시도하고 실패할 수 있는 게 있어야 한다
딥러닝 중에서 강화학습 ->에이전트 - AI
이게 어떤 행동을 한다. 이게 보상을 해준다. 에이전트는 리워드를 더 많이 받도록 행동을 바꾼다. 그럼 점점 더 잘할 수 있게 된다.
알파고 - 프로기사들 기보를 보고, 나중에 학습하는 것이다 . 뭘 알고 하는가? 그냥 점수를 많이 받으면 하는 것이다
Deep Q Network - 컴퓨터 게임 같은거
딥마인드 - 알파고 만든 회사
구글에서 2014년도에 딥마인드 인수. 5천억 . 직원이 10명?
알파고제로 - 이세돌 9단 2016년 3월
2017년 10월 알파고 논문. 사람들의 전략이 필요 없이 가능. 백지에서 학습. 이게 알파고제로
알파고리 (이세돌과 상대했던 딥러닝 모델) vs 알파고제로 : 알파고제로가 알파고 리를 완전 이긴다.
그 후에 알파제로 - 바둑뿐만 아니라 장기도 한다
feature를 스스로 학습하려면 데이터가 엄청 많아야 한다
GAN
생성모델
진짜와 똑같은 모델
생성자와 식별자라는 2개의 신경망 이용한다
생성자는 진짜와 똑같은 이미지를 형성하고 식별자는 그것이 진짜인디 판명한다
전이학습
BERT 같은거. 이게 전이학습이다
한 쪽 모델을 다른 곳에 쓰는 개념이다.
신한은행에서 상환여부를 판단. 우리은행 모델을 빌려 쓸 수 잇다
모델 쉐어링 - 데이터 공유.
머신러닝의 핵심은 데이터 공유이다. 하지만 이게 한계가 있다.
대표적으로 병원데이터는 의료법때문에 공유가 힘들다
그래서 모델을 쉐어하는 방향으로 간다
충분한 데이터를 못갖고 있을 때 적용하는 방법
언어모델. 자연어처리 쪽에선 훈련데이터 감성분류를 한다
레이블을 달아줘야 할 것이다 이건 인풋
이걸 레이블을 달아준다. 이게 타겟변수인데 돈이 든다
그냥 low data 자체는 많다
low data 가지고 래이블링 없는 데이터를 가지고 학습한다
어떤 단어들이 들어오는지 학습한다
이걸 사전모델
RNN 번역기 2개가 붙어서 하나는 인코더. 뒤에는 디코더
인코더 영어 - 디코더 불어 => 변역이 돈다
시퀀스 투 시퀀스 모델이라고 한다.쳇봇 등
RNN은 너무 길면 처리를 못한다.
트랜스포머 가지고 학습시킨 것이 버트 BERT 이다
GPT-3 초대용량 언어모델. 파라메터가 엄청 많다
학습시키는데만~~~~ 30~50억원 든다고 알려져 있다.
GPT-3 논문
• Zero shot 러닝
아예 예시가 없다. '사과가 영어로 뭐지?'
언어 모델을 충분히 학습하면 이게 가능하다
•One shot 러닝 - 사과는 애플이다. 딸기는 뭐냐?
케이스를 하나밖에 주지 않았지만 사람은 알 수 있다.
왜? 언어를 이미 알고 있기 때문이다
원샷은 예시 하나만 보고 파악하는 기술이다
•Few shot 러닝
음성인식도 RNN 기술이 나오면서 좋아졌다.
음파로 전달 -> text 기술 => 받아쓰기 기술. STT 기술
speech to text 기술
TTS 기술도 있다
죽은 가수 노래도 만드는 기술이 이거다
사람 수준으로 한다 딥러닝 기술
브래이크 쓰루 가 만들어진다
하지만 사람이 하는 이야기에 대해서 대답을 하려면?
텍스트의 의미를 파악해야 한다.
현재는 룰 베이스 이다 질문과 정답이 정해져 있다.
전이학습 기술이 들어가면 의미를 파악한다
SQuAD
전이학습 ... 현재도 쉽지 않다
영어독해시험 같은거다
SQuAD2.0 Leaderboard
이그젝트 메칭
사람이 87점
원래 70점대였다가 버트 나오면서 점수가 확 뛰었다.
•CNN
기존신경망
–완전연결(fully connected)
–Affine 계층 사용
하지만 CNN은 합성곱 계층
완전연결 계층의 경우 ,이미지는 2차원이지만 정보처리하면 3차원이다
픽셀. 하나의 색을 나타내려면 RGB 방식을 사용한다.
RGB값이 3개. 0~255 사이값
1셀의 RGB값은 3개
그래서 정보로 보면 3차원이다
합성곱 연산
필터 (커널 이라고 부르기도 한다)
입력데이터를 가지고 필터를 곱한다
그렇게 값을 뽑아낸다
입력데이터를 대응값끼리 곱한다
결국 2X2 값이 된다
또 편향 값을 줄 수 있다.
패딩
주변에 0을 놔준다. 점선이 있는 것이 0이 들어가는 것이다
이게 패딩 개념
스트라이드 - 한 칸씩 가라는 법이 없다. [위의 사례] 몇 칸씩 이동하면서 계산하는 방식
가로새로 채널. 필터의 채널이 있다.
이러면 결과가 1장이 나온다
3차원 데이터의 합성곱 연산
3차원 합성곱 연산에서는 입력 데이터의 채널 수와 필터의 수가 같아야 한다
필터가 여러 개 이다.
그러니까 필터가 여러 개 있고, 이게 차원이 높아진다
필터 갯수만큼 나온다
한 가지 편향을 더해준다. 모양은 그대로 이다
아웃풋은 필터 크기에 따라 달라진다
FN은 필터갯수이다
풀링 계층
풀링 레이어
차원을 줄이는 역할을 한다
학습해야 할 매개변수가 없다.
채널 수가 변하지 않는다.
2*2 max pooling 을 스트라이드 2로 처리하는 순서
이미지때는 맥스풀링을 쓰고 시계열은 에버리지풀링
노이즈를 줄이는 효과가 있다