일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- sts
- 웹
- QNA 봇
- 구현
- 장고
- boostcourse
- AI Tech 4기
- P Stage
- Naver boostcourse
- 서블릿
- 서버
- 풀스택
- Django
- Naver boostcamp
- 웹 프로그래밍
- BOJ
- 네이버
- 레벨2
- 4기
- 백엔드
- 백준
- 파이썬
- 2021 Dev-matching 웹 백엔드 개발자
- Customer service 구현
- 부스트캠프
- cs50
- 프로그래머스
- 대회
- AI Tech
- 프로그래밍
- Today
- Total
daniel7481의 개발일지
20221006 3주차 목요일 본문
피어세션
오늘의 알고리즘 문제는 leetcode의 200.Number of Islands였다. 단순한 dfs/bfs 문제로 나는 queue를 사용하여 모든 경우를 탐색하면서 섬의 개수를 구하였다. 오늘의 챌린지는 물 8잔 먹고 인증하기이다. 다들 데일리 스크럼 시간에 각자 목표하는 진도를 나누고 하루가 시작되었다. 피어세션 시간에는 심화 과제를 리뷰하였는데, VIT 모델에 대한 내용이었다. VIT의 가장 큰 의의는 CV 문제에 CNN을 사용하지 않고 transformer를 사용했다는 점이었다. 놀라운 점은 CNN을 사용하지 않고도 더 좋은 성능을 냈다는 점이었다.
VIT의 high-level view다. Transformer에서 encoder만 가져왔고, 먼저 이미지를 patch로 나눠준다. 예로 들어 이미지가 28*28이고 patch가 4면 7*7이미지를 가져오게 된다. 이 이미지를 flatten해준 후 토큰 역활을 하는 cls_token을 concat 해준 후 각 이미지의 위치 정보를 담은 가중치 position embedding을 더해준다. 더해준 후는 encoder에 들어가게 된다
이 개념은 transformer와 같다. Value, Key, Query 벡터에 linear을 해준 후 Key와 Query의 내적 곱을 dk의 제곱근을 나눠준 값에 소프트맥스를 취해주고 그 값과 value를 곱해준 값을 구하고, 다 concat해준 후 linear를 통해 입력으로 들어왔던 차원으로 다시 줄여준다. 그 다음은 MLP 블록으로 들어가게 된다. 이 논문이 각광을 받게 된 점은 CV 문제를 Transformer로 풀려고 했던 점이고, 또 성능도 더 높다는 점, Computational efficiency가 높다는 점이였던 것 같다.
마스터 클래스
오늘은 최성준 교수님께서 마스터로 참가하셨다. 최성준 교수님의 강의는 어렵긴 했으나 재밌다고 느꼈기에, 뭔가 연예인 보는 기분이었다...ㅋㅋㅋ 말하는 톤이 굉장히 흡입력이 있는 편이다(왜 그런지는 모르겠다). 대체적으로 교수님의 인생 전반을 얘기해주셨는데, 고려대 인공지능학과의 교수님으로 있는 지금과는 다르게 꽤 힘든 시간을 보내셨다는 점을 알려주셨다. 대학원 생활이 결코 쉽지 않았던 점, 하지만 그럼으로써 더 성장할 수 있었다는 점을 알려주셨다. 또한 교수님은 강의 자료를 준비하면서 많은 성장을 하셨다고 했다. 사실 나도 최고의 학습은 남을 가르치는 것이라고 생각한다. 남을 가르치려면 그 분야에 정통해야 하고, 가르치면서 이해될 떄가 꽤 많았다. 이번 교육을 마치고 모교로 가게 된다면 남에게도 지식을 전달하는 기회가 있었으면 좋겠다. 이번에 귀국을 하게 되면 사람들과 스터디를 해볼려고 한다. 교수님이 해주셨던 말 중에 중요했던 말이 있다.
- 단순히 AI 엔지니어가 아니라, 엔지니어로써 가져야 할 스킬셋이 있다. SOTA 모델을 알고 구현할 줄 알아야 한다.
- 나는 ML/DL 엔지니어가 AI만 정통하면 될 줄 알았다. 하지만 ML 엔지니어 이전에, 엔지니어다. 엔지니어로써 갖춰야 할 기본 소양이 있다. 이런 점을 미리 공부해야 할 것 같다.
- 현재 대부분의 모델들은 Transformer로 대동단결하고 있다.
- 예전에는 있던 데이터에서 어떻게든 쥐어짰다면, 요즘은 어떻게든 데이터를 더 많이 구할려고 한다.
- 문제를 새롭게 정의하는 것이 변화에 민감한 것 보다 중요하다. 변화에 민감하게 반응해서 새로운 모델을 짜도, 얼마 지나지 않아 리더보드에서는 밀리게 되어있다. 문제를 정의할 줄 아는 사람이 되자
네이버 부캠의 진가는 이러한 마스터 클래스에 있는 것 같다. 돈주고도 구할 수 없는 조언들을 매주 듣게 되는 것이 진짜 많은 도움이 된다.
공부 회고
오늘은 Data Visualization 강의를 들었다. 사실 NH 투자증권 빅데이터 대회 참가 중이라, 정말 필요한 강의였다. 상당히 많이 도움을 받기도 했다.
- Data Visualization을 공부하기 전에 데이터를 이해할 필요가 있다. 어떤 데이터를 시각화 할 것인지, 누구에게 시각화된 자료를 보여줄 것인지를 고려해야 한다.
- 데이터 시각화는 결국 점, 선, 면으로 이루어져 있다. 이를 잘 활용하고 배치 시킴으로써 조화를 이루게 하는 것이 임무다.
- 시각화는 전주의적 속성이 있어야 한다. 전주의적 속성이라는 주의를 주지 않아도 인지하게 되는 요소를 말한다. 한 눈에 봐도 내가 시각화한 자료가 강조하려는 내용이 무엇인지, size, shape, color등으로 차별화를 둠으로써 나의 insight가 바로 인지되도록 해야한다.
- Bar plot의 시작점은 0이어야 한다. 차이를 나타내려면 세로를 늘려야 한다. 사실 bar만의 원칙이 아니라 area plot, donut chart 등등에도 해당되는 규칙이다.
- 데이터를 시각화 하기 전에 정렬하는 것은 필수다. 시계열이면 시간순, 수치형이면 크기순, 순서형이면 범주의 순서대로, 명목형이면 범주의 값 따라 정렬해야 한다.
- 필요 없는 복잡한 분석은 NO! 예로 들어 무의미한 3D는 Z축에 대하여 비교가 어렵다는 단점이 있다. 우리가 인지하기에는 2D가 가장 이해하기 편함으로, 2D를 더 활용하자, 또한 직사각형이 아닌 다른 형태의 bar는 지양하도록 하자
'AI Tech 4기 > Level1' 카테고리의 다른 글
20221011 4주차 화요일 회고 (0) | 2022.10.12 |
---|---|
20221007 3주차 금요일 (1) | 2022.10.07 |
20221005 3주차 수요일 회고 (0) | 2022.10.06 |
20221004 3주차 화요일 회고 (1) | 2022.10.04 |
20220930 2주차 금요일 회고 (1) | 2022.09.30 |