
전체 글
AITech P-stage1 [Day 5]
==================================== 학습내용 voting으로 앙상블을 할 수도 있는데 여기서도 hard, soft를 사용할 수 있다. K-fold 원래 멀쩡한 데이터가 있다면 그걸 data augmentation 할 수 있잖아? 그럼 data generator로 나온 결과도 같은 답이어야 함. 그래서 각각의 데이터들끼리 soft 결과 합을 해서 가장 일반적인 결과를 내놓는 방식으로 학습할 수도 있다. 물론 앙상블을 하는 모델 갯수만큼 학습 시간도 많이 늘어남. https://optuna.org/#code_examples 파라미터도 학습으로 결정할 수 있게 만들수는 있지만 뭐가 좋은지 돌려보고 때려박아서 결정하는거라 정말 시간이 많이 걸린다. 저 optuna library는 ..
AITech P-stage1 [Day 4] data imbalance..
===================================== 수업내용 loss 도 사실 nn.Module 클래스. 그래서 layer처럼 되는거고, 자기가 원하는 식으로 만들 수도 있다. loss.backward()를 하면 require_grad=True 인 것들에 대해 loss layer에서 부터의 변화량 만큼 학습시키는 거임. 근데 loss도 그냥 loss를 하는것 보다는 여러 상황을 고려해서 하는게 더 낫더라. 해서 나온 여러 loss 방법들. 식을 잘 정의하면 고려할 수 있나보다. optimizer는 이 loss로 구한 error만큼 움직이긴 할 건데 어떻게 움직일거냐 하는걸 결정함. 학습중에 learning rate를 감소시킬 순 없을까? 해서 나온것들이 몇개 있음. https://www...
AITech P-stage1 [Day 3] epoch는 적당히
================================ 수업내용 어떤게 더 사용하기 편리하고, 어떤게 더 개조하기 좋겠는가? tensorflow는 간단해서 사용하기 편리하게 만들었지만 공부하고 연구하는 거는 pytorch가 더 좋게 만듬. 철학이다. 모든 모듈들은 최종적으로 _ConvNd(Module)을 가진다. 내가 MyModel 안에서 정의한 nn.Conv2d들도, 내가 정의한 MyModel 자체도 모두.. 그래서 모두 하나의 클래스로 정의되어 있기 때문에 위에 쌓고 위에 쌓고 분리되고 합쳐지고.. 하는 여러 자유로운 방식으로 구성되고 데이터를 주고받을 수 있는 것이다. 모두 같은 클래스를 가지게 된다는건 모두 같은 함수를 가지고 있다는 뜻. 즉 forward 하나만 실행하면 알아서 하위들의 모든..
AITech P-stage1 [Day 2] 아직도 data payload에서 막힘.
============================= 수업내용 data argumentation도 좋지만 그에따른 병목현상도 고려해야 한다. dataset은 몇 번째 index에 해당하는 자료가 뭔지를 뽑아내는 거고, dataloader는 그걸 더 편리하게 해주는 것에 불과함. 둘을 잘 분리해야 한다. num_workers를 무조건 늘린다고 좋은게 아니다. cpu로만 학습할 때는 과부화 뭐 그런 문제가 있는 듯. 그래서 데이터나 프로젝트, cpu코어 갯수 등.. 환경마다 고려해서 확인해주는게 좋음. ================================= 피어세션 Additionally, VGG networks are trained on images with each channel normalized..
AITech P-stage1 [Day 1] 모델구성과 data payload 고민 작성중..
============================ 강의 내용 목적을 이해하는 행위 EDA(Exploratory Data Analysis) 각 셀들에서도 목적이 있다. 호기심 나열. 어떻게 써야할지. 코드 구현. 개요를 잘 보자. 왜 대회를 열었는지 목적. 방향을 볼 수 있다. ========================= 목표 딱히 없었음. 대회 코드 보고 데이터 분석하고 할 수 있으면 모델 넣고 결과만 보자. 간단해도 되니까. ============================= 행동 그래서 첫주인 만큼 환경세팅을 했다. 예전에 titanic 분석할 때 사용했었던 것들을 한번 사용해 보았다. 특이한건 나이 분포가 중간이 움푹 패어있지만 대회에서 요구하는 나이대로 나누면 비율이 반대가 된다는 것. 이게..
AITech 학습정리-[Day 40] 행렬 분해 / 돌아보기
================================= 학습내용 (10강) 행렬 분해 https://openaccess.thecvf.com/content_CVPR_2020/papers/Kossaifi_Factorized_Higher-Order_CNNs_With_an_Application_to_Spatio-Temporal_Emotion_Estimation_CVPR_2020_paper.pdf 수치해석 시간에 배웠던 행렬분해. neural network 때문에 tensor로 확장했다고 함. https://en.wikipedia.org/wiki/Low-rank_matrix_approximations https://en.wikipedia.org/wiki/Kernel_method 행렬을 분해시켜 low ran..
AITech 학습정리-[Day 39] 양자화 / 지식 증류
================================ 학습내용 (8강) 양자화 이번 강의는 관심이 없어서 그런지 머리에 하나도 안들어왔다. 그래서 필요성을 약간이나마 느낀것들을 정리하려고 한다. 필요하면 그때 찾아야지.. float 저장 방식으로 생기는 오류들. https://youtu.be/DDelqfkYCuo 근데 양자화 시키면 미분 불가능하니까 못하는거 아니냐? 할 수 있어서 적당히 양자화 시키는 것도 있음. https://openaccess.thecvf.com/content_CVPR_2019/papers/Yang_Quantization_Networks_CVPR_2019_paper.pdf https://www.tensorflow.org/lite/performance/post_training_q..
AITech 학습정리-[Day 38] 빠르게 / 가지치기
================================== 학습내용 (6강) 빠르게 https://leejaymin.github.io/papers/dc18.pdf 밑으로 하드웨어쪽으로 내려가는걸 lowing. 근데 직접적으로 쫙 내려가는건 비효율 적이니 중간단계에 graph적으로 처리하는걸 만든다고 한다. https://towardsdatascience.com/how-fast-numpy-really-is-e9111df44347 파이썬에서 그냥 파이썬보다 numpy가 빠르다. 파이썬은 각 숫자도 object로 보지만 numpy는 비슷한 object는 하나의 object로 보기 때문이라고 한다. 그리고 병렬적으로 해결 가능하고, C로 되어있어서. 간단한 이유는 파이썬은 interpreter이기 때문. h..
AITech 학습정리-[Day 37] 모델의 시공간 / 알뜰히
====================================== 학습내용 (4강) 모델의 시공간 정답이 될 수 있을만한 구간을 feasible region이라고 부른다. feasible region에서 내가 원하는 조건의 답을 찾아서 구하는것. 모든 조건을 만족하는 곳. 풀릴 수 있는 문제인가 아닌가의 기준점. algorithm으 넘어서면 풀 수 없거나 영원히 돌려야 하는 구간이다. http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201703082055005#csidx871276de9dbfc6eb1d464ad0c74a8e1 https://en.wikipedia.org/wiki/Principle_of_maximum_entropy#:~:text=Th..
AITech 학습정리-[Day 36] 가벼운 모델 / 팔리는 물건 / 가장 적당하게
=========================================== 학습내용 (1강) 가벼운 모델 좀 추상적이고 철학적인 내용들이 들어있음. 타이핑으로 정리해봄. "청소좀 해줬으면 좋겠다" 라는 결정도 로봇이 알아서 하는 시대가 되었다. 정확도가 높아지면서 중요한 결정도 맡을 수 있게 되었다. 결정할 수 없는 문제도 있는데, 법률이나 조건. 또는 인륜적인 문제. 경량화 (Lightweight) 와 소형화 (Miniaturization)의 차이는 경량화는 불필요한 것 등을 줄여서 가볍게 해주는 거고 소형화는 말 그대로 물체 형태의 크기를 작게 하는 것. 우리가 하는건 경량화. 딥러닝 모델을 작게 해서 작은 곳에서도 수행할 수 있게 한다. 그럼 cloud에서 부담이 줄게되어서 좋음. 또 기계에 넣..