목록분류 전체보기 (89)
플로라도의 data workout
첫 시간에는 강좌에 대한 소개와 컴퓨터 비전 그리고 딥러닝에 대한 전반적인 overview를 제공한다. 개론적인 역사에 관한 부분이니 가볍게 훑고 지나가도 될 것 같다. 키워드 : 컴퓨터 비전, 딥러닝, 인공신경망(Neural Net)의 역사 "Deep Learning for Computer Vision" 이라는 강좌의 제목이기도 한 철자에서, 각 Deep Learning과 Computer Vision이 의미하는 바가 뭘까? 컴퓨터 비전은 비주얼 데이터(visual data)에 대해 가공하고, 인식하고, 추론하는 인공적인 시스템을 만드는 것이라고 할 수 있다. 시간이 지날 수록 visual data의 양은 기하 급수적으로 증가하고 있으며, 강의실에는 학생 수보다 대게 더 많은 카메라가 존재하기 마련이다...
inductive bias는 딥러닝을 공부하다 보면 종종 마주치는 개념어다. 필자는 ViT(Vision Transformer)를 공부하면서 처음 접하게 되었는데, 당시 정확한 의미를 알지 못하고, 각 뉴럴넷의 아키텍쳐상의 특징 정도로 이해하였으나, ViT 논문에서 inductive bias의 등장 횟수를 세어보니 8번이나 되는걸로 보아 간단히 넘어갈만한 녀석은 아닌듯 하다. ViT paper : AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE (https://arxiv.org/abs/2010.11929) Inductive bias는 한국말로 직역하면 "귀납적 편향"이라고 하는데, 단어의 뜻만으로는 그 의미가 크게 와닿지..
Bias-Variance Decomposition은 머신러닝 모델의 일반화 오차(generalization error)를 분석하는데 사용되는 개념이다. 이는 오차를 세가지의 요소로 분해한다. 1. Bias(편향) 모델(estimator)의 예측(estimate)과 실제 값(target) 사이의 차이를 말한다. 모델이 학습 데이터에만 과도하게 맞춰진 오버피팅 상태에서 편향이 발생한다. 2. Variance(분산) 모델의 예측(estimate)의 변동성을 나타낸다. 모델이 학습 데이터에 언더피팅된 상태에서 분산이 증가하게 된다. 3. Noise(노이즈) 데이터 자체의 내재적인 불확실성이다. 모델이 제거할 수 없는 에러나 데이터 발생시 불특정한 이유에서 발생한 에러를 의미한다. 노이즈의 발생 원인은 다양할 수..
최근, 작년에 열심히 수강했던 cs231n의 내용을 완벽하게 까먹은 것을 깨닫고(?) 복습 차원에서 EECS 498-007 : Deep Learning for Computer Vision 강좌의 슬라이드를 활용하여 관련 내용을 새로이 정리하고자 한다. 가장 유명한 딥러닝& 컴퓨터 비전 강좌인 스탠퍼드의 CS231n: Deep Learning for Computer Vision (2017)에 이어서 2019년 버전 "Deep Learning for Computer Vision"은 미시간 대학 유튜브에서 EECS 498-007이라는 강좌명으로 강의를 제공하고 있다. 동일한 강의자인 저스틴 존슨(Justin Johnson)이 강의를 진행하며, 내용면에서 업그레이드된 부분들이 있어, 매해 가파른 속도로 발전하는..
흔히들 육각형을 가장 효율적인 도형의 한 형태로 알고 있을 것이다. 특히, 벌집이 육각형으로 구성되어 구조적 안정성과 효율적인 면적 사용을 확보했다는 이야기는 어린 시절 과학책에서 흔히 볼 수 있는 이야기 중 하나다. 컨볼루션 레이어의 필터는 많고 많은 도형중에 왜 정사각형을 채택한걸까? 일반적으로 컨볼루션 레이어는 위의 그림과 같이 각 채널에 대해서 w1 ~ w9의 가중치로 이루어진 정사각형 형태의 3x3의 필터를 가장 많이 사용한다. 그러나, 굳이 정사각형의 형태를 채택한 이유에 대해서는 좀처럼 다뤄지지 않은 것 같다. 대부분의 딥러닝 강의나 교재 등에서도 다뤄지지 않은 부분이고, 나 역시 이를 의심없이 받아들여 왔다. 위의 벌집의 예시처럼 육각형 형태라던지(물론 사각형의 형태가 가장 무난한 형태겠지..
12월 29일 이어드림 3기의 정규 과정이 끝이 났다. 3월, 이어드림 스쿨 지원 및 면접, 최종 합격통보, 그리고 3월 27일 첫 개강부터 12월 15일 최종 기업연계 프로젝트 발표, 21일 취업 박람회 등, 9개월이 지난 12월 29일 정규 시간의 마지막까지 마지막 회고가 과정의 처음 절반 정도 쯤에 작성했었는데, 나머지 절반의 과정은 정말 순식간에 지나갔다. 매니저님 왈, 과정 시작 시기에 구글 크롬(Chrome)을 킬 줄도 몰랐었다고 놀리시는데... 설마 크롬 키는것을 몰랐겠냐고 반문을 했지만은... Mac에서의 크롬의 설치 방법을 몰랐던 것으로 추정은 되고... 아무튼 마지막 기업 연계 프로젝트에서는 최우수 팀에 선정도 되고, 발표도 하고, 면접도 보고, 좋은 경험이었다. 3월 , 이어드림 3기..
앞선 글에서 mutable한 객체를 반복하고자 할때는 얕은 복사가 이루어져 동일한 메모리 값을 참조하게 된다고 했다. 그렇다면 mutable객체의 반복은 얕은 복사로 동일한 객체를 참조하는게 아니라 서로 다른 별개의 객체로 만들어 값만 복사할 순 없을까? 얕은복사와 깊은복사를 예시를 통해 다시 정리해보자. 얕은 복사 (Shallow Copy): 이 방법은 최상위 컨테이너는 새로운 복사본을 만들지만, 컨테이너가 담고 있는 내부 객체들은 원본 객체의 참조를 그대로 유지한다. Python의 copy 모듈의 copy() 함수를 이용하여 얕은 복사를 수행할 수 있다. import copy original_list = [[1, 2, 3], [4, 5, 6]] shallow_copied_list = copy.copy..
리뷰 논문 : https://arxiv.org/pdf/1609.04747.pdf<span styl..
이중 리스트 같은 경우 간단히 리스트 컴프리헨션을 사용함으로써 초기화를 할 수 있다. array[1][1] = 3으로 할당하면 아래와 같이 두번째 row의 두번째 요솟값만 3으로 바뀐걸 알 수 있다. m = 3 n = 4 array = [[0]*m for _ in range(n)] array[1][1]=3 array >>> [[0, 0, 0], [0, 3, 0], [0, 0, 0], [0, 0, 0]] 그러나 만약 아래의 코드로 이중리스트를 초기화 한다고 하면 문제가 생긴다. array = [[0]*m]*n 으로 초기화 후 , array[1][1]=5를 할당하면 array= [[0]*m]*n array[1][1]=5 array >>> [[0, 5, 0], [0, 5, 0], [0, 5, 0], [0, 5..
* 리뷰 논문 : https://arxiv.org/abs/1905.11946* 유튜브에 공개된 https://www.youtube.com/watch?v=Vhz0quyvR7I 링크의 영상과 슬라이드를 참고로EfficientNet의 선행 Convolutional Neural Networks의 논문 리뷰들을 다수 참고하여 필요한 부분들을 스터디 발표용으로 재구성하였습니다.EfficientNet은 현재까지도 CNN기반의 아키텍쳐중 이미지를 처리에 있어서 훌륭한 성능을 보여주고 있는 Neural Network다.2019년 ArXiv에 게재 되었으며, 논문의 제목은 "Rethinking Model Scaling for Convolutional Neural Networks" 로, 저자들이 제안한 합성곱 신경망(Co..