Study/AI
Quantization은 무엇일까?
Quantization 알아보기 Quantization이란? Quantization, 한국말로 양자화. Quantization의 사전적 의미는 분야마다 다르게 해석될 수 있는데, 물리에서는 '어떤 연속적인 양을 이산적인 양으로 만드는 것', 수학이나 신호 처리에서는 '아날로그 신호를 특정 대표값으로 나타내어 디지털 신호로 변환하는 것'이라고 정의한다. 넓은 의미로 '어떤 측정된 양을 기본 단위로 치환하는 것'라고 볼 수 있다. 딥러닝에서 Quantization이란? 그렇다면 딥러닝에서 Quantization은 어떤 의미로 해석될까? 딥러닝에서 Quantization은 일반적으로 사용하는 floating point precision보다 낮은 bitwidths로 tensor를 저장하는 기술을 의미한다. 예컨..
Inductive Bias란 무엇일까?
머신러닝에서 Bias는 무슨 의미일까? Inductive Bias라는 용어에서, Bias라는 용어는 무엇을 의미할까? 딥러닝을 공부하다 보면, Bias과 Variance를 한 번쯤은 들어봤을 것이다. Bias는 타겟과 예측값이 얼마나 멀리 떨어져 있는가, 그리고 Variance는 예측값들이 얼마나 퍼져있는가를 의미한다. 따라서 Bias가 높은 경우 데이터로부터 타겟과의 연관성을 잘 찾아내지 못하는 과소적합(Underfitting) 문제가 발생하고, Variance가 높은 경우에는 데이터의 사소한 노이즈나 랜덤한 부분까지 민감하게 고려하는 과적합(Overfitting) 문제가 발생한다. 여기서, Bias를 학습 알고리즘의 잘못된 가정에 의하여 발생하는 오차라고도 하는데, 잘못된 가정에 의하여 데이터에서 중..
딥러닝의 핵심, 역전파
역전파(Back Propagation)란 무엇일까? 역전파의 의미 우선 역전파의 정의에 대해서 알아보자. 역전파는 신경망의 각 노드가 가지고 있는 가중치(Weight)와 편향(Bias)을 학습시키기 위한 알고리즘으로, 딥러닝에 있어서 가장 핵심적인 부분이라고 할 수 있다. 목표(Target)와 모델의 예측 결과(Output)가 얼마나 차이가 나는지 확인하고 그 오차를 바탕으로 가중치와 편향을 뒤에서부터 앞으로 갱신해가는 것을 의미한다. 역전파란 명칭도 바로 이처럼 뒤에서부터 다시 앞으로 거슬러 올라간다는 것에서 나온 것이다. 비결이 뭐야? 역전파가 딥러닝에 있어서 중요하다는 점은 알겠다. 도대체 어떤 방법으로 학습을 진행하고 또 가중치를 갱신하기 위해 어떤 방법으로 이 복잡한 신경망을 계산할 수 있는 것..
모델의 평가지표란?
머신러닝 모델을 학습할 때, 모델의 성능을 평가하는 방법은 무엇이 있을까? 데이터 준비와 모델 학습과 더불어 모델 성능을 측정하는 것 또한 머신러닝의 핵심 단계라고 할 수 있다. 그렇다면, 머신러닝 모델의 평가지표(Evaluation Metric)에는 무엇이 있는지 한번 살펴보자. 평가지표란? 모델의 학습은 어떻게 평가할 수 있을까? 정확도만 가지고 측정이 가능할까? 정확도로만 학습을 진행한다면, 모델은 실제 사용 환경에서 처음 만나는 데이터에 대해 약한 모습을 보일 가능성이 크다. 학습의 목적에 따라서 그에 맞는 적절한 평가지표를 사용해야 올바른 성능평가를 진행할 수 있다. 앞으로 올바른 성능평가를 할 수 있도록 대표적인 평가지표들은 무엇이 있는지 살표보고 비교해보자. 모델 정확도 (Model Accu..
데이터가 충분하다고 말하려면 얼마나 있어야 할까?
정답은? 더보기 아무도 모른다! 왜 그럴까? 프로젝트에서 다루는 문제의 복잡성은 정말 다양하다. 개와 고양이를 구분하는 비교적 간단한 분류 문제부터 조직 슬라이드에서 특정 림프구를 구분하는 비교적 복잡한 문제도 있다. 그럼 이 두 문제를 학습하기 위한 충분한 데이터의 양은 동일할까? 정확히는 모르지만 아마도 대부분의 사람들이 직감적으로 다를 것이라 생각할 것이다. 그래서 얼마나 필요한데? 문제의 복잡성과 사용하는 모델의 따라서 충분하다고 말할 수 있는 데이터의 양은 다르다고 말할 수 있다. 하지만 얼마나 필요한가? 대답하기는 어렵지만, 이 정도로 생각해 볼 수는 있을 것 같다. 상황에 따라 다르다 정해진 답은 없으며, 경험에 따라서 답을 찾아갈 뿐이다. 앞서 언급했듯, 문제의 복잡성이나 학습 알고리즘의 ..
딥러닝이란 무엇일까?
딥러닝은 무엇일까? 지난 몇 년간 인공지능(Artificial Intelligence)은 일상 속 다양한 부분에서 접할 수 있었고, 이 용어는 더 이상 낯설지 않게 되었다. 그리고 그런 AI와 항상 같이 언급되는 머신러닝(Machine Learning), 딥러닝(Deep Learning)은 무엇을 의미하고 어디에 활용될까? 머신러닝은 인공지능의 하위 분야이며, 딥러닝은 이런 머신러닝의 하위 분야로 여긴다. 이 글에서는 이 용어에 대해서 각각 알아보고 설명하고자 한다. 1. 인공지능 인간의 지능을 모방한 인공지능 인공지능은 인간의 지능을 기계나 컴퓨터를 통해서 모방하고자 만들어진 개념이다. 인간의 인식, 판단, 추론 그리고 그에 대한 말이나 행동, 학습과 같은 인간의 지능을 이해하는 컴퓨터 시스템을 의미한..
Deep Learning Library for video understanding
Representative Library for video understanding facebookresearch/PyTorchVideo [github] open-mmlab/MMAction2 [github] paddlepaddle/PaddleVideo [github] Compare Libraries PyTorchVideo MMAction2 PaddleVideo Support Model - Slow & SlowFast - X3D - MViT - Slow & SlowFast - X3D - TimeSformer - BMN - PoseC3D - PP-TSM - AGCN - TimesFormer - BMN - AttentianLSTM Feature - Support Accelerator for optimizing..
Knowledge Distillation 구현
What is Knowledge Distillation? 모델의 경량화의 방법 중 하나인 Knowledge Distillation. 이는 Pseudo Labeling과는 약간은 다른 개념이다. Pseudo Labeling의 경우에는 라벨이 없는 데이터를 잘 학습된 모델을 사용하여 추가적인 데이터(hard label)로 학습하는 것이라면, Knowledge Distillation은 잘 학습된 모델의 경향성(soft label)을 배우는 것이다. 여기서 말하는 경향성이란, 예측 결과로 나온 라벨을 얼마나 그 라벨이라고 생각하고 나오는 것인가를 학습한다는 의미 한다고 볼 수 있다. (자세한 내용은 이전 게시글 2021.10.22 - [Study/AI] - Why Knowledge Distillation Wor..