[AIFFEL 대전 1기] 47일째 날

데이터 여행자·2021년 3월 8일

[일기]

목록 보기
48/105

토요일에는 아이효 첫 스터디 날이었다. 솔직히 스터디 시작 전까지 들어가야 하는지에 대해서 조금 고민했다. 하루에 다루는 범위가 많고 발표 준비도 걱정이 되었기 때문이다. 그러나 막상 들어가 보니 쉽게 설명을 해주셔서 너무 좋았다. 알고리즘도 코딩마스터 때 책으로 보았을 때는 이해가 안 되던 것이 이해가 되었다. '역시'라는 말이 나오는 시간이었다. 스터디원들이 각자 준비해서 발표를 하는 시간도 좋았다. 신기하게도 주제가 하나도 겹치지 않아서 매번 새로운 내용을 들을 수 있었다. 노드 시간에 배운 내용이라 그 당시 이해가 안 되던 부분을 다시 점검하고 돌아보는 시간이었다. 발표 시간이 부족해서 못 들은 내용은 공유된 파일을 통해 다시 봐야겠다. 발표 준비를 왜 해야 하나 했더니 공부한 내용을 시간 안에 정리하는 능력을 키우라는 C님의 큰 계획이었다. 아이효를 통해 정말 아이효가 되는걸까?

  • 인공지능의 배경 지식
  • 알고리즘: 배열과 연결리스트
    (세부적인 내용은 노트에 적었는데 잘 보관했다가 언젠가 정리를 해야겠다.)

일요일에는 대전으로 이사왔다. 다음주부터 오프라인이기 때문에 미리 적응할 시간이 필요할 것 같았다. 예전에 살던 고시원보다 넓고 화장실도 따로 있어서 편하다. 주방은 따로 있지만 같이 있으면 음식은 간단히 먹을 것이기 때문에 괜찮을 것 같다.

추Node

오늘의 주제는 '트랜스포머'이다. 어제 이사, 풀잎스쿨 발표 준비, 코로나 데이터 시각화를 하느라 트랜스포머는 보지 못했다. 미리 보려고 했지만 매번 인코더 부분에서 막히고는 한다. 그래도 발표 준비하신 P님께서 정리를 잘 해주셔서 좋았다. 아직 해결되지 못한 부분도 있지만. 오늘 저녁에 이 부분은 다시 봐야겠다. 왕언니가 오늘 사정이 있어서 스터디에 참석하지 못했는데, 오후에도 보니 안 계셨다. 무슨 일이 있는건지 걱정이 된다.

노드

오늘의 노드는 RNN과 LSTM이었다. 오늘은 RNN과 LSTM의 날인가 보다. 스터디부터 풀잎스쿨까지 다 연관된 내용을 다루고 있다. 다행히 아는 부분이라 빨리 끝났다. 다만 임베딩 벡터 부분이 이해하기 어려웠다. 이전부터 이 부분이 궁금해서 위키독스를 보고 있었는데 나와서 다행이었다. 퍼실님과 Y님께서 설명을 잘 해주셔서 이해할 수 있었다. 그러니까 단어를 원-핫벡터로 모델에 집어넣는데, 원-핫벡터는 단어간 서로 독립적인 관계(원-핫벡터의 특성 때문에 단어간 유사성을 알 수 없다.)를 가지고, 차원의 저주 문제 때문에 비효율적이다. 따라서 임베딩 벡터라는 것을 넣어서 차원을 줄이고 단어간 유사성을 가진 벡터를 만든다. 임베딩 벡터는 다양한 방법을 사용하는데, (word2vec, fastText 등) linear layer에 원-핫 벡터를 넣어서 밀집 벡터를 만드는 방식으로도 단어벡터를 만들 수도 있다. 그리고 '원-핫 인코딩을 위한 단어 사전을 구축하고 단어를 사전의 인덱스로 변환'하면 임베딩 레이어를 사용할 수 있다고 써있었다. 코드로 구현하는 것도 나왔으나 명확히 이해는 하지는 못했다. tensorflow에 임베딩 벡터를 만들 수 있도록 구현되어 있는 것 같다.

점심 시간 전에 잠시 코딩 마스터 조원들과 이야기를 나누었다. 셋 다 제대로 하지 못했다. 우선 내일까지 할 수 있는만큼 해보기로 했다.

풀잎스쿨, CS231n

오늘은 Image Captioning, Image Captioning with Attention, VOA, LSTM, GRU 등을 배웠다. CNN과 RNN을 결합하는 부분과 알아서 Attention한다는 것이 신기했다. LSTM과 GRU 부분은 발표 준비를 하면서 다룬 것이라 그렇게 어렵지는 않았다. 그러나 내가 발표 준비했을 때는 LSTM에 3가지 게이트가 있다고 나왔는데, 오늘 들은 영상에서는 4가지 게이트를 언급했다. 임시 CtC_t를 게이트 게이트라고 불렀다. 영상에서는 자세히 수식을 설명하지는 않지만 각 게이트가 어떤 일을 하는지에 대해서 잘 짚어주어 도움이 되었다.

10강을 다 듣고 9강 GoogleNet과 ResNet에 대해서 배웠다. GoogleNet의 Inception module이라는 부분이 인상적이었다. 여기서 1x1 conv가 사용되었는데, 왜 CNN을 배울 때 1x1 conv에 대한 이야기를 했는지 이제야 알았다. ResNet에서의 Residual Mapping은 사실 이해가 안 된다. 그러나 트랜스포머 부분에도 나오기 때문에 조금 더 공부해 봐야겠다.

오늘 영상은 사실 졸면서 들었다. 주말에 정리를 하면서 다시 살펴봐야 한다. 그런데 강의가 2017년에 녹화된 것이라 최근의 이론과는 다르다고 했다. 트랜스포머가 강의 녹화가 끝나고 나왔기 때문이다. 아마도 이번에도 미시간대 강의를 들어봐야 할 것 같다. 주말 내내 발표 준비하느라 미시간대 강의를 여러 번 들었다. (발표 부분만) 이번에도 그럴 것 같다.

수업이 끝나고..

수업이 끝나고 오랜만에 Y님과 이야기를 나누었다. 서로의 고민과 미래를 이야기했다. 사실 내가 하소연하는 것이 더 많다. 지금 조는 너무 조용하고 스터디를 하면서 만나게 되는 분들은 잘하시는 분들이라서 가끔은 위축이 된다. 그래서 Y과 이야기를 나누면서 우리만의 페이스대로 조금씩 공부해나가기로 했다.

0개의 댓글