ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [week3] 네부캠 ai tech 3주차 회고
    et al/AI Tech 6 2023. 11. 24. 22:45

    2023.11.24. 금요일

    네이버  부스트코스 ai tech 6기에 참여하고 3주가 흘렀다. 3주차 회고를 작성한다.

    주차별 학습 내용 목차.

    더보기

    1주차 : 파이썬 기초 문법, 객체 지향 프로그래밍, 넘파이, 판다스, 기초 통계(MLE, 베이즈통계), 기초 선형대수학,

               AI기초(경사하강법, CNN, RNN)

     

    2주차 : pytorch

     

    3주차 : DL basic(~transformer, Genertive models)

     

     

    * 짧은 소감 

    - 피어세션

    딥러닝 기초 강의를 들으면서 생긴 질문들을 해결했다. 파이토치 코드에 대해 많이 질문했었다. 

    피어세션 때 진행한 질문 몇 가지 기록용

    더보기

    질문1 : cnn코드에서 prev_hdim을 계산할 때

    prev_hdim = prev_cdim*(self.xdim[1]//(2**len(self.cdims)))*(self.xdim[2]//(2**len(self.cdims))) 는 

    maxpooling이 kernel_size = (2,2), stride = (2,2)라는 걸 전제로 계산한 것 아닌가? 여기선 왜 이렇게 일일이 계산한 건가?

     

    -> 실제 코드에서는 input size에 따라 prev_hdim이 고정되기 때문에, 계산 후 숫자로 넣는 편이다.

     

     

     

    질문2. 파이토치 문서에서 zero_grad() 설명을 읽어보니, parameter인 set_to_none =True가 default라서 grads를 0이 아니라 None으로 바꿔주던데, 0일 때랑 None일 때랑 무슨 차이인가요? 그리고 None으로 해도  grads 계산에 문제 없는 이유를 잘 모르겠습니다. (grads를 계산하는 코드구조를 잘 이해하지 못한 것 같습니다. ) grads를 계산할 때 if 문으로 grad가 none일 때랑 아닐 때랑 구분해서 코드가 작성되는 건가요?

     

    - 0과 None의 차이 None값은 그래디언트 값을 계산에서 제외시켜 메모리 사용량을 줄이는 효과가 있다.

    - 코드를 실행할 때 optim.zero_grad() --> ... --> optim.step() 순으로 진행되는데, Adam 코드를 확인해보면 아래와 같이

    if p.grad is not None: 라는 코드에서, grad가 None이 아닌 부분만 grads 라는 리스트에 담아주고 adam 함수에 넘겨 준다. -> "None값은 그래디언트 값을 계산에서 제외시켜"와 일맥상통.

        def _init_group(
            self,
            group,
            params_with_grad,
            grads,
            exp_avgs,
            exp_avg_sqs,
            max_exp_avg_sqs,
            state_steps
        ):
            for p in group['params']:
                if p.grad is not None:
                    params_with_grad.append(p)
                    if p.grad.is_sparse:
                        raise RuntimeError('Adam does not support sparse gradients, please consider SparseAdam instead')
                    grads.append(p.grad)
    
                    state = self.state[p]

    https://pytorch.org/docs/stable/_modules/torch/optim/adam.html#Adam

     

    - 스페셜피어세션 진행.

    랜덤으로 다른 캠퍼분들과 만날 수 있었던 시간이었다. 오늘 팀은 좀 어색함이 지속됐다. mbti, I 4 명과 E 한 명 ㅎ 이야기가 계속 끊겨서 주제를 요리조리 옮겼는데, 피어세션과 멘토링 시간에 무얼 하는 지 얘길 나눴다. 어떤 멘토님은 논문 스터디를 진행하신다고 했고, 다른 멘토님은 유학 중이라서 해외 대학원에 대한 얘기와, 사전 질문을 받고 멘토링 시간에 대답해주는 시간을 가졌다고 한다. 

     

    - 멘토링
    이번 화요일 멘토링 시간에는 강의를 들으면서 생긴 질문들을 해결하는 시간을 삼사십분 가량 가졌고, 저번주처럼 면접 질문에 대해 답해보는 시간을 가졌다. 대답을 유도하고 대답 하나하나에 반응해주시는 스윗한 멘토님^^ 

     

    * 진행한 내용

    이번주에 좀 지쳐있었다. 공부해야 할 많은 키워드를 던져주어서 좋았지만, 동시에 너무 강의량에 의해 소화하기 버거웠다. 천천히 곱씹을 시간이 없는 게 가장 아쉬웠다. 그리고, 코드에 대해 익숙하지 않아서 앞으로도 꽤나 고생할 것 같다. 실습 코드를 클론코딩하면서 공부했는데, 매우 좋은 방법인 것 같다. 하지만 코드 한 줄 한 줄을 뜯어보는 게 시간이 오래걸려서 시간관리가 정말.. 잘 안 되고 있다. 강의도 강의 시간만 짧지, 내용은 절대적으로 많아서 절망적으로 시간이 부족하다. 하나도 안 남는 훑어보기식 공부를 할 바에 강의를 다 듣지 못하더라도 그냥 내 페이스대로 강의를 듣고자 한다.(강의 언제 다 곱씹지..?) 주말 시간을 잘 활용해봐야겠다. 손으로 체화하는 시간이 꼭 필요하기에 시간이 걸리더라도 한 줄 한 줄 뜯어보는 것을 멈추지 않으려고 한다.

     

    * 주말 계획

    1. 밀린 코테 진행.

    2. 강의 및 과제 복습 (2주차, 3주차...)

    3. 깃허브 강의..(아...ㅜㅜ)

    4. 시각화 강의 ㅜㅜ

     

    * 다음주 계획

    다음주 피어세션에는 각자 모델이나 주제 하나를 잡고 발표하기로 했다. 나는 GoogLeNet을 맡았다. Inception module과 bottlenec layer에 대해 특히 집중해서 준비하기로 했다. 다음주는 도메인으로 별로 강의가 갈라지는데, 다음주 커리큘럼을 봤을 때, 진도가 말이 되나 싶다... 시간을 효율적으로 쓸 방법, 컨디션을 조절할 수 있는 방법을 찾아봐야겠다. 체력이 못 버티는 것 같다.

    • 1 x 1 convolution(Channel 바꾸는 거랑 + Point-wise, Depthwise-separable convolution(MobileNet, Deeplabv3 etc) ⇒ 보류
    • ResNet → Residual block(Skip-connection), Auxilary loss(보조 손실)
    • DenseNet → Dense block 
    • GoogleNet(InceptionNet) → Inception module, bottleneck layer, 보조 손실 
    • 활성화 함수(GELU, SELU 등) 총 집합

     

    < 목표 >

    1. 앞으로 어떤 산업분야, it 도메인 혹은 비it 도메인 어디로 나아가야할 지 많이 찾아보고, 물어보고 고민해보자.

    2. 멘토님이 추천해주신 자료를 보면서, 수학 기초를 쌓자. , 유튜브
    3. 프레임워크에 익숙해지자. 또한 수식과 코드를 연결하는 공부를 하자.

     

     

    * 공부 내용 링크 

    2023.11.22 - [Mathematics/Calculus] - EMA(Exponential Moving Average, EMA) 지수이동평균

    2023.11.10 - [Mathematics/statistics] - [통계학] Maximum Likelihood Estimator, MLE (최대우도법)

    2023.11.17 - [et al/AI Tech 6] - [멘토링-2] 멘토링 정리

     

    'et al > AI Tech 6' 카테고리의 다른 글

    [멘토링] 5주차 멘토링 정리  (0) 2023.12.08
    [week4] 네부캠 ai tech 4주차 회고  (0) 2023.12.01
    [멘토링-3] 멘토링 정리  (0) 2023.11.24
    [멘토링-2] 멘토링 정리  (0) 2023.11.17
    [week2] 네부캠 ai tech 2주차 회고  (2) 2023.11.17

    댓글

Designed by Tistory.