팀의 베이스라인 코드를 만드는 연습하는게 좋을 것 같다.
제공은 해주겠지만 무지성으로 갖다쓰는것보다 직접 만드는게 좋을 것 같아요
주어지는 베이스라인 코드는 활용하는게 아니라 할 일을 코드로 설명해주는 것
흐름을 확인하는 용도
베이스라인 구축했고 구성요소로 뭐뭐가 있다고 쓰는것도 이력서에 쓰기 좋은 내용임
다같이하라는 이유: 코드 협업 처음은 무조건 난리가 난다.
임의의 데이터가 주어지면 그것에 맞게 모델, 최적화, 레이어를 어떻게 구성할지 고민한 흔적이 남는 베이스라인 만드는게 좋다.
대회: 컨셉을 하나 가지는게 좋다. 다양한 모델 쓰기 / 몇 등 하기 등등
전형적인 아마추어 대회이니까 등수는 큰 영향이 없다.
꼴등은 좀 그렇긴 하지만
교육목적인걸 기업에서도 알고있다.
아무것도 모르는 1등보다 배우는게 있는 10등이 낫다
등수 올리기는 점수만을 위한 트릭이 필요함
모델을 뜯어보겠다 -> 등수는 낮을 수밖에 없다 -> 등수 너무 낮아서 꼴등만 피하자고 등수 올리다가 이도저도 아닌 결과가 될 수 있다.
대회 강의가 따로 있다.
대회에선 강의를 빠르게 보는거 좋다고 생각한다.
2번 문제: learning rate 구하는게 굉장히 중요하다는 것을 수학적으로 간단히 설명할 수 있는 문제이다.
히든 레이어가 하나인 단층 신경망인데 여기에서도 lr이 중요하다 -> 깊어질수록 lr이 더더더더 중요하다 -> 실제로 피부로 느낄 뿐만 아니라 그것들을 뒷받침해주는 이론들이 있다. 어떻게 설정하면 좋은지, 어떻게 설정하면 안좋은지 찾아보길 바랬던 문제
6번 문제: 딥러닝을 ~~하는 연구 중 하나
딥러닝은 과거에 알아오던 통계적 학습이론과 다르다.
라벨 메모라이즈는 "현상"이다. 해석이 아직까지 잘 이루어지지 않았다.
mnist정도는 알렉스넷(2012)로도 가볍게 다 외워버릴 수 있다는 것
transformer, skip connection 등등 최신기술 많이 나왔는데 이녀석들이 정확하게 추론하는건가? 기억만 하는게 아닌가? 하는 고민을 해봤음 좋겠다는 생각에서 ~~
딥러닝이 좋으면 안쓰이는 영역이 없을거잖아 안쓰는 이유가 위와 같은 리스크 때문이겠죠?
딥러닝이 전부가 아니다 라는걸 항상 명심하고 있으면 좋겠다.
전혀 예상치 못한 현상이 나와도 놀라지 말것. 딥러닝은 원래 이런 것이구나 하고 천천히 해결방안을 찾아가길 바래요
모델 하나하나 익힌다는건 어렵고 줄건줘 마인드가 좋을 수도 있다.
어떤 모델이 어떤 문제를 해결하고자 나왔는지 정도는 알았으면 좋겠고
어떻게 해결하는지를 알아내는건 베스트
더 구체적인 트릭들은 계속해서 변경되고 있기 때문에 거까지 가진 않는게 좋을거다.
계속해서 바뀌기 때문에 취업할 때 되면 다 버리는 지식이 될 수 있다.
어떤 문제 해결을 위해 등장했고 어떻게 해결했다 까지만 알면 좋겠다.
핸드폰에서 무슨 문제를 어떻게 해결할지 대책이 나왔다 예시 알려주심
거기서 ~~까진 들어가지 않아도 된다.
ResNet 정도는 논문 읽고 정도 할 수 있다.
기초, 근간이 되는 모델들은 정확히 알고 가는게 좋다고 생각한다.
생성형모델같은거 알면 좋은데 이해 안되는데 시간 쏟아서 공부하는 것보다 얇고 넗게 BFS하는게 좋다고 생각해요
오히려 multi-modal은 또 중요합니다.
요런것들 답을 할 수 있어야한다.
1x1 convolution이랑 dense가 완전히 같지는 않다.
1x1 conv는 채널을 원하는대로 압축하거나 늘리거나 할 수 있기 때문에 사용한다.
3x3 filter를 많이 쓰는 이유: 5x5, 7x7보다 3x3 두번 쓰는게 파라미터 수를 적게 가져갈 수 있다.
깊은 레이어 -> overfit이 일어나는 이유 : gradient vanishing
따라서 gradient vanishing 염려되면 큰 filter의 conv 하나가 나을 것
이미지를 분류하는 모델을 conv 연산만으로 수행할 수 있나?
feature extractor
feature vector: 만들 때 flatten 해서 나온 벡터를 mlp 태워서 분류 가능하겄죠
1x1 conv를 하면 채널방향인데 dense layer는 면방향?
1x1xk(클래스 개수라 하면) conv 태우면 NxNxk로 바뀌겠죠
GAP: NxN -> 1x1이 되는거잖아여
GAP 대신 NxN conv 하면 GAP 대체된다
filter의 원소 값이 1 / N^2이면 GAP가 되겠져
태우고 나면 1x1xk가 되겠져
무슨 레이어 무슨 레이어 이런거 말고 각각의 연산이 어떤 의미를 가지는지 이야기 하는거다.
1x1 conv와 NxN conv를 합치면 ~~~를 대체할 수 있다.(dense, GAP?)
무슨무슨 모델보다 중요한건 각 연산이 뭘 하는지
비슷한 얘기 -> mlp-mixer를 예시로 설명했었다.
point-wise(채널방향) 연산과 local-wise(면방향) 연산만 할 수 있으면 이미지 분류 할 수 있다.
발표
넘파이 파이토치 가장 큰 차이 : 자동미분의 유무!!
two stage: region proposal과 classification 분리
one stage: region proposal과 classification 합체
경량화 자체를 공부하긴 어려울 것 같다.
경량화를 적용한 모델을 공부하거나 pruning을 적용하는 연습하면 좋겠다.