전체 카테고리 21

[Meta-Learning] Meta-Learning in Neural Networks: A Survey 논문 리뷰

meta learning에 대해 공부하려고 Meta-Learning in Neural Networks: A Survey 논문을 참고하여 meta-learning의 개념과 어떤 방법들이 있는지 봤다. 후에는 관련 유명한 논문들을 하나씩 읽으면서 좀더 자세한 방법을 공부할 예정이다. 개념 지금까지의 머신러닝 모델은 손수 설계된 고정된 학습 알고리즘을 사용하여 특정한 task를 해결하기 위해 scratch로부터 학습된다. 반면 meta-learning은 관련된 task의 분포까지 커버할 수 있도록 많은 학습을 통해 얻은 경험을 이용하여 모델을 향상시킬 수 있게된다. meta-learning은 ‘학습하는 법을 학습’하는 방법으로 보통 이해되는데, 이는 많은 학습들(multiple learning episodes..

Depth Estimation을 적용하여 자율주행 드론 구현하기

작년 가을부터 진행한 끝나지 않을 것만 같던 졸업프로젝트의 마지막을 달리고 있다. 시원하면서도 섭섭하다. 원래의 졸업프로젝트 주제였던 "산불 탐지 자율 주행 드론"에서 도메인을 약간 변경하여 “조난자 수색 자율 주행 드론" 프로젝트를 진행하였고, 필자는 프로젝트에서 드론의 자율주행 및 장애물 회피 코드 구현을 맡았다. 만약 졸업프로젝트의 작년 겨울 글을 보고 픽스호크와 ROS를 사용하여 조립한 드론을 어떻게 구현했는지 궁금했던 사람에게는(그런 사람이 있는지는 모르겠지만) 안타까운 소식이 있다. 하드웨어 및 구현 방법 변경 원래는 nvidia 젯슨 나노 혹은 라즈베리파이를 사용하여 ros을 사용하여 자율주행 드론을 구현하려고 했는데 다음의 이유 드론을 직접 조립해야하는 문제 → 하드웨어에 대한 지식이 필요..

DARTS: Differentiable Architecture Search 논문 리뷰

해당 논문은 미분법을 사용하여 architecture search의 확장성 문제를 다룬다. discrete하고 미분불가능한 search space를 다루는 진화 혹은 강화학습을 적용한 기존 접근법과 다르게, 논문의 방식은 architecture 표현의 연속적인 relaxation에 기초하여 gradient descent를 사용하여 architecture 탐색을 효율적으로 만든다. CIFAR-10, ImageNet, Penn Treebank, WikiText-2에 적용한 광범위한 실험은 이 알고리즘이 image classification에 대해 높은 성능의 convolutional architecture와 language modeling에 대해 recurrent architecture를 발견하는 속도를 빠..

NAS 2022.01.18

Neural Architecture Search with reinforcement learning 논문 리뷰

이 논문은 Neural Architecture Search 분야의 기초가 되는 2017년 ICLR에 게재된 google brain의 Barret Zoph와 Quoc V. Le의 논문이다. CNN의 역사를 보면 VGGNet과 GoogleNet,... 으로 CNN의 구조(architecture)를 조금씩 바꾸어 좋은 성능을 내는 모델을 제안해왔다. 이와 같이 architecture에 따라 neural network의 성능이 달라질 수 있는데 이전에는 사람이 직접 좋은 architecture를 고안해왔다. feature 추출에서 SIFT, HOG처럼 feature design을 사람이 직접했었다가 feature design까지 기계가 찾아주는 딥러닝이 등장한 것 처럼 architecture를 찾아주는 것을 사..

NAS 2022.01.05

ROS와 Gazebo로 드론 제어하기

산불 인식 자율주행 드론 프로젝트에서 드론의 자율주행을 구현하는 부분을 맡아서 진행하고 있고 이와 관련해서 포스팅을 할 예정이다. 드론의 자율주행은 드론의 control을 프로그래밍을 함으로써 수행될 수 있다. 그렇기 때문에 나는 코딩으로 드론을 제어할 수 있다는 것을 확인하고 나중에 자율주행 알고리즘을 구현해서 드론을 제어하는게 최종 목표이고 이 과정을 블로그에 포스팅할 예정이다. 이번 글에서는 예제 cpp과 python 코드를 실행해서 드론 제어하기 까지의 과정을 다룰 것이다. [Pixhawk] 가끔씩 드론을 조종하는 것을 볼 때 사람들이 조이스틱 같은 걸로 드론을 조종하는 것을 본 적이 있을 것이다. 이처럼 원래는 드론을 RC조종기를 통해 제어할 수 있었다. 여기서 RC는 Radio Control인..

google TPU 논문 리뷰: In-Datacenter Performance Analysis of a Tensor Processing Unit (3)

2편에서는 아래 구성에서의 3을 다루었고, 이번 3편에서는 4.performance에 대해 설명을 해볼 것이다. 1. TPU origin : TPU 왜 만들게 되었는지 2. TPU architecture : TPU의 구성 및 동작 원리 3. CPU, GPU, TPU 연산량, 구조 비교 4. performance : CPU, GPU와 비교한 TPU의 성능 Performance benchmark를 위해 datacenter의 95%의 workload를 나타내는 오늘날(당시에) 유명한 NN(nueral network, 인공신경망)의 3종류를 2개씩 총 6개의 NN모델을 예시로 들었다. 3종류의 NN은 MLP, LSTM(RNN의 일종), CNN이고, 각 모델의 정보는 다음과 같다. 당시에 CNN의 연산을 가속하는..

DNN accelerator 2021.08.12

google TPU 논문 리뷰: In-Datacenter Performance Analysis of a Tensor Processing Unit (2)

1편에서는 아래 구성에서의 1-2를 다루었고, 이번 3편에서는 3. CPU, GPU, TPU 연산량, 구조 비교에 대해 설명을 해볼 것이다. 1. TPU origin : TPU 왜 만들게 되었는지 2. TPU architecture : TPU의 구성 및 동작 원리 3. CPU, GPU, TPU 연산량, 구조 비교 4. performance : CPU, GPU와 비교한 TPU의 성능 CPU, GPU, TPU 비교 이 부분은 논문에는 없는 내용이다. 이 논문을 읽으면서 '그래서 TPU가 CPU랑 GPU와 두드러지게 다른 점이 뭐지?'라는 궁금증이 들어 구글 블로그를 참고하여 궁금증을 해소하였다. 이 부분에서는 CPU, GPU, TPU를 연산, 구조 측면에서 비교하였다. 1. 연산량 비교 CPU는 한 cloc..

DNN accelerator 2021.08.12

google TPU 논문 리뷰: In-Datacenter Performance Analysis of a Tensor Processing Unit (1) - TPU 구조 및 명령어

구글이 2017년에 발표한 TPU 논문 리뷰를 해보려고 한다. 이 논문은 첫번째 버전의 TPU에 대한 설명을 다루고 있고, 현재에는 TPU는 4번째 버전까지 발표되었다. 해당 논문과 구글 블로그의 글을 참고하여 논문을 정리하였다. 다음과 같은 구성으로 글을 써보려고 한다. 1. TPU origin : TPU 왜 만들게 되었는지 2. TPU architecture : TPU의 구성 및 동작 원리 3. CPU, GPU, TPU 연산량, 구조 비교 4. performance : CPU, GPU와 비교한 TPU의 성능 TPU Origin 논문에서 최근(2013년 기준)에 DNN 모델들이 요구하는 datacenter의 연산량이 매우 증가했다고 한다. 예를 들어 하루에 3분씩 사람들이 음성 검색을 한다면 (구글의)..

DNN accelerator 2021.08.12

Efficient Processing of Deep Neural Networks - HW for DNN Processing: Systolic array

CNN model의 inception module, shortcut module등과 같은 다양한 방법을 사용하여 더 높은 정확성과 연산량을 줄이려고 하였다. 그러나, ResNet의 MAC의 개수를 보면 필요로 하는 연산량이 매-우 많다. 이런 연산을 처리하기 위해서는 많은 자원이 필요하고, 좋은 자원이 있어도 에너지 소모량도 방대하며 실행되는데 걸리는 시간도 오래걸린다. 이런 문제들을 줄이기 위한 노력이 하드웨어적으로 이루어지고 있는데, 이번 부분에서는 이에 대해 이야기 해보려고 한다. data reuse 데이터를 읽어올때 반드시 DRAM을 거쳐서 오게 되는데, DRAM에 접근하는 것은 오랜 시간과 많은 에너지를 사용하므로 최대한 DRAM에서 데이터를 읽어오거나 쓰는 일을 줄여야한다. 즉, DRAM에서 ..

DNN accelerator 2021.08.12

Efficient Processing of Deep Neural Networks - DNN(2): CNN

이번글 'Efficient Processing of Deep Neural Networks - DNN(2)'에서 다룰 내용은 다음과 같다. DNN의 종류 유명한 CNN 모델 DNN의 종류 DNN을 크게 두 종류로 나눌 수 있다. feedforward neural network: input 부분에서 output 부분까지 연속적으로 이전레이어의 output 값을 받아서 계산하고.. 이를 한 방향으로 연산을 진행한다. recurrent network와 달리 순서가 있는 입력에 대해서 순서를 고려하지 않고 출력해준다. 예를 들어 input1, 2, 3순서대로 입력이 들어왔다면 출력은 output1,3,2와 같이 순서와 관련 없이 출력될 수 있다. 이미지가 어떤 물체를 포함하고 있을 확률과 같은 일을 할 수 있다...

DNN accelerator 2021.08.11