Bitamin MNIST Competition
Kannada digits을 분류해봅시다!
![](https://storage.googleapis.com/kaggle-media/competitions/Kannada-MNIST/kannada.png)

## 다양한 기법들로 딥러닝의 성능을 올릴 수 있습니다! 
아래 요소들로 멋진 모델을 만들어 보세요!
- [Optimizer](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers)
Optimizer는 Adam, SGD 등 다양하게 사용할 수 있습니다. 
이와 더불어 Cosine Learning Rate Scheduler도 시도해보세요!
- [Batch Normalization](https://www.tensorflow.org/api_docs/python/tf/keras/layers/BatchNormalization)
Layer의 Output의 평균을 0 , std를 1로 조정해줍니다. Training 중에는 평균과 std를 추정해가며, inference 시에는 추정한 평균과 std로 Layer의 Output을 조정합니다. 
- [Dropout](https://www.tensorflow.org/api_docs/python/tf/keras/layers/Dropout)
Overfitting을 방지하기 위해서 사용합니다. 앙상블을 위한 여러개의 모델을 만드는 것 대신 학습 사이클이 진행되는 동안 무작위로 일부 뉴런을 생략합니다. 0에서 1사이의 값으로 Drop할 확률을 구할 수 있습니다. 
- Data Augmentation
Overfitting을 방지하기 위해서 사용합니다. 다양한 Augmentation(증강) 기법이 있으며 이미지에서는 [링크](https://imgaug.readthedocs.io/en/latest/)와 같은 기법을 많이 사용합니다. 
- Weight Initialization
가중치 초기화 역시 학습 수렴에 있어서 중요합니다. Activation Fuction에 따라 다른 가중치 Method를 사용해야 하는데 [링크](https://www.tensorflow.org/api_docs/python/tf/keras/initializers)에 있는 함수의 종류를 바탕으로 한번 공부해보세요!
- Transfer Learning
ImageNet으로 가중치를 초기화하는 방법은 익히 잘 알려진 기법입니다. Fine-tuning이라고도 하며, 이미 잘 훈련된 모델이 있고 해당 모델과 유사한 문제를 해결할 때 그 효과가 잘 나타납니다. 
- [Knowledge Distilliation](https://tobigs.gitbook.io/knowledge-distilation/)
Neural Network에서 지식을 전달하기 위한 기술입니다. 관심있으시면 찾아보시면 좋을 것 같습니다.
Acknowledgements
Kaggle thanks Vinay Prabhu for providing this interesting dataset for a Playground competition.
Image reference: https://www.researchgate.net/figure/speech-for-Kannada-numbers_fig2_313113588