[[TableOfContents]] = OMS = attention is all you need - 연사자: [김동영] == 트랜스포머 == * 트랜스포머는 2017년부터 연구되어오던 주제 * 기계 번역의 성능을 높이기 위해서 나온 주제 == 딥러닝 == * 딥러닝이라 하면 일반적으로 알고리즘으로 풀 수 없는 문제들을 딥러닝으로 많이 해결함. * 처음 도입되는건 함수를 근사하는 목적으로 만들어 졌음. * 예를 들어 컴퓨터는 고양이를 숫자로 보고 고양이라고 판단하는 과정을 학습하는데, 기계 번역 쪽에서도 사람의 말을 어떻게 번역할 것인가에 대한 내용이다. * 통계 기반의 알고리즘이 있었는데, 이에 딥러닝이 사용도기 시작하였다. == dnn == * dnn = deep neural network * 이걸 어떻게 번역에 사용할 것인가에 대한 연구가 진행되어오고 있음. * 단어들의 순서 정보가 들어가는게 필요해서 rnn을 만들게 되었음. == rnn == * 순차적으로 받아들일 수 있는 모델을 rnn이라고 부름. * 번역도 정보가 순차적으로 들어와서 진행될 것임. * rnn으로 무엇을 할 수 있는가? * 사진설명 붙이기 - one to many * 감성분석 - many to one * 번역 - many to many == 번역 == * 번역은 seq2seq가 유명함 * 시퀸스 데이터가 없다? => 사진을 볼 때는 사진 딱 하나만 들어와서 순차적이지 않음. * 그러나 DNN은 순차적인 정보에 어울리지 않음 == LSTM == * rnn의 일종 * rnn 2개가 합쳐져 있는 모델이 있음. * i am a student 같은 문장이 들어온다고 할 때, 이를 사람이 보는 정보인 "특징 vector"로 분류하게 됨. * 이렇게 분류된 걸 context, 문맥이라고 부르고 context를 decoder에 넣어서 출력을 하는 방식이다. === Problem 1 === * 문장이 길어지면 context vector를 작게 표현하는게 가능한가? * 많은 양의 데이터를 정해진 양으로 압축해야 한다는 문제가 발생한다. === Problem 2 === * 순차적으로 정보를 처리하는데, long term dependecy 문제가 있다. * 시간이 늘어날 수록 원래 있던 정보에 새로운 정보가 희석되면서 정보가 왜곡될 수 있다. == summary == * Mnt에서는 seq2seq를 많이 썼음 * dnn 성능이 너무 안좋아서 * 기존 seq2swq는 인코더에서 입력이 context vector로 압축되고, 디코더가 이를 출력을 만드는 방식으로 작동한다. * 아직 2개의 문제가 남아있다. * long term dependecy * compress all the necessary information into a fixed-length vector * 병렬 처리도 어렵다(순차적으로 해야하기 때문) * 따라서 seq2seq는 입력 문장의 길이가 길어질수록 성능이 떨어진다. == Attention == * 여기서 attention 메커니즘이 등장한다. * 디코더로 넘어가는건 똑같으나, context vector가 없다. * 인코더에서 hidden state가 있는데 이를 모두 저장하고 현재 디코더에서 현재 상태를 같이 넣어서 sofrmax에 넣게 된다. * 그래서 어느 단어들이 연관성이 높은지 찾게되고 이를 통해 더 정확한 뜻을 찾을 수 있게 된다. == 문제점 == * attention도 rnn에서 벗어나지 못하는 문제점이 있다. * rnn을 빼버리면 되지 않을까? 하는 아이디어 제시 * transfomer가 등장하게 된다. * sota = state of the art(기술), sota라는 대회(?)가 있는데 여기에 transfomer가 상위권 대다수를 먹게 됨 == Transformer? == * seq2seq는 rnn + attention * seq2seq는 rnn 기반이기 때문에 병렬처리가 어렵다 -> rnn을 빼자는 아이디어 제시 * transformer는 rnn 없이 attention만을 사용함 == attention is all you need == * 라는 제목의 논문이 2017년에 나옴 * seq2seq는 input sequence와의 attention score를 구하기 위해 input length 만큼의 시간이 필요했음 * transformer는 self-attention을 사용해 시간복잡도를 O(1)로 줄여 긴 문장도 해결할 수 있게 되었음 * rnn을 안쓰면 데이터 순서 정보가 사라지지 않은가? * posirional encoding을 사용해서 데이터에 시간 정보를 추가할 수 있음 * inference 할 때는? * 그리디 서치, 빔 서치를 하면 됨 * transformer가 2017년에 나왔을 때 큰 파장을 일으켰음. * X-former는 바닐라 transformer를 발전시킨 것 = 새싹교실 및 새싹톤 결과 공유 = == [새싹교실/2022 | 새싹교실] == - 3/9 ~ 6/21 새싹교실 진행 - 8개 반 개설 - 새싹16명이 C, C++, Python, Java를 주제로 진행 - 6/26 새싹톤 설명회 및 개최 - 4팀 참가신청, 2팀 중도포기 - 7/4 새싹톤 발표회 및 시상 - 1등 : Java보시던지(임지민, 박창훈)의 카페 키오스크 구현 - 15만원 - 2등 : Champion(전영은)의 새싹 키우기 게임 - 10만원 = [데블스캠프2022 | Devils Camp] 결과 공유 = - 일자 : 7/14 ~ 7/16 - 19시 ~ 23시 - 장소 : 208관 415호 실습실 == 연사자 = - [방석현], [옥찬호], [권준혁], [정진경], [박인서], [김도엽], [양운천], [이승찬] == 회고 == - 홍보가 부족해 보인다(참여자 적음) - 구글 미트보다는 줌 같은 자동 입장 수락 플랫폼은 어땠을까 - 참여자에 대한 수준과 인원수를 미리 조사하여 연사자에게 전달했다면 - 이번에는 밤을 새지 않았으니 주말에는 차라리 낮이었다면? - 연사 목차 등 자세한 정보를 연사자에게도 전달했다면 - 오프라인 상황에 대한 경험 부족 - 미리 테스트할 시간이 부족 - 녹화 환경과 발표 환경도 미흡 - 장소 대여에 있어서 커뮤니케이션 에러가 발생한 적 있음