Loading...

m면체 주사위 n개를 굴려서 나올 수 있는 경우의 수를 구하는 방법

3886번: Expected Allowance (acmicpc.net)  m면체 주사위 n개를 굴려서 나온 숫자의 합에 컷백 k를 뺀 값만큼 지폐를 받는다고 할 때, 받을 수 있는 지폐 수의 기댓값 이때, k 이하의 수가 나온다면 최소 1장은 받는다 예를 들어 6면체 주사위 2개를 굴리면? 가능한 숫자의 합은 1부터 12까지인데 모든 경우의 수는 36가지이고 숫자의 합이 2인 경우의 수는 (1,1)로 1가지 3인 경우의 수는 (1,2), (2,1)로 2가지 4인 경우의 수는 (1,3), (2,2), (3,1)로 3가지 k = 3이면 지폐를 1가지 받는 경우의 수는 숫자의 합이 2, 3, 4 3가지 경우에 가능하다. 따라서 지폐 1가지 받는 경우의 수는 1+2+3 = 6가지  그러면 먼저 m면체 주사위 n..

2024. 8. 16. 22:40

network compiling 간단하게

1. motivation  학습이 완료된 network를 deploy하려는 target hardware에 inference가 가능하도록 compile하는 작업  최적화 기법도 동반되어 사실상 속도에 가장 큰 영향을 미치는 작업 그러나 가장 복잡하면서 내용이 상당히 어려움 유명 제조사들에서 compile library를 제공함 NVIDIA의 TensorRT는 NVIDIA GPU에 최적화시켜 compile을 수행 Tensorflow의 Tflite는 여러 embedded device에 성능을 보장해줌 apache의 TVM은 Tflite와 비슷한 기능들을 제공?  2. 문제점  compile library마다, 적용하는 모델마다 성능에 차이가 있음    기본적으로 compile을 수행하면 inference 속도..

2024. 8. 16. 20:24

network quantization 간단하게

1. motivation 일반적으로 float32로 network 연산과정이 표현되나 그것보다 작은 크기의 데이터 타입인 float16 half precision이나 int8 fixed point로 mapping하여 연산을 수행하는 것  2. 예시   1번처럼 float32의 matrix들을 int8로 quantization mapping하여 표현을함 matrix를 계산한 결과가 2번임 2번을 다시 float32로 dequantization하면 3번이 됨 실제 quantization하지 않고 계산한 4번과 비교하면 어느정도 오차가 있는데 이것을 quantization error라고 부름 경험적으로 quantization error에 대해 robust하게 network가 잘 작동한다는 사실이 알려져서 보편..

2024. 8. 15. 20:27

knowledge distillation 간단하게

이미 학습된 큰 규모의 teacher network가 있다면 작은 student network 학습시 teacher network의 지식을 전달하여 학습을 시키자.  1. 일반적인 방법 주어진 input x를 pretrained teacher model과 student model에 넣어서 output을 낸다 teacher model의 경우 softmax(T=t)를 사용하여 soft label을 내놓고 student model은 softmax(T=1)의 hard label과 softmax(T=t)의 soft label을 모두 내놓는다   A부분에서는 student model의 hard prediction을 이용하여 ground truth와의 cross entropy를 이용한 일반적인 training이 이루..

2024. 8. 14. 22:08

Efficient Architecture design이란

1. motivation 효율적인 architecture를 디자인하여 큰 모델 못지 않은 성능을 내는 모듈을 만들고자 하는 것이 efficient architecture design 최근 trend는 사람이 디자인하는 것보다 AutoML이나 Neural Architecture Search같은 컴퓨터가 optimization으로 모델을 찾게 만듦  2. 필요성 매일 다양한 특성을 가지는 module들이 쏟아져나오고 있음 이 module들은 특징이 다양함.  parameter가 적은데 성능은 좋다든지 성능만 좋고 parameter는 너무 많다든지 연산량이 적은데 성능이 떨어진다든지    왼쪽 그림은 연산횟수에 따른 정확도 비교. 원의 크기는 model의 parameter 오른쪽 그림은 model의 param..

2024. 8. 14. 20:10

왜 경량화인가? 딥러닝 모델의 경량화가 필요한 이유

1. motivation 머신러닝과 딥러닝은 이제 거의 모든 분야에서 활용되고 있음 자율주행자동차, entertainment, healthcare, NLP, text, speech, image, audio 등등 다양한 application   2. on device AI  smartphone, smartwatch, IoT device 등에 자체적으로 머신러닝이나 딥러닝 어플리케이션이 올라가 inference를 수행함  이미 object detection, translation 등이 on device에서 수행가능한 딥러닝 어플리케이션들 그러나 올려야하는 어플리케이션이 power(battery) usage가 적어야하고 RAM memory usage가 적어야하고 storage가 적어야하고 computing p..