공부하는삶

3.1. Convolution Layers 3.1.1 Tiled Convolution Tiled CNN은 인접한 단위로 pooling함으로써 complex invariances을 학습하여, 인접한 은hidden units가 동일한 weights를 공유할 필요가 없음. 또한 learned parameter가 적다는 CNN의 장점이 있음 3.1.2 Transposed Convolution 이 논문에서는 'Deconvolution'이라는 용어를 사용하고 있는데, 기존의 convolution과 비교하여, Deconvolution은 single activation을 multiple output activation과 연관시킴. (d)는 unit stride와 zero padding을 사용한 4x4 input에 대한..
3. Efficient Training 3.1 Large-batch traninig 작은 batch size로 training 시키는 것과 비교하면, batch size가 클 경우 동일 epoch에서 validation accuracy가 낮게 나타나는 것을 확인할 수 있음. 따라서 본 논문에선느 single machine training에 대해 batch size를 확장하는것에 도움이 될 수 있는 four heuristics에 대해 실험을 함 Linear scaling learning rate mini-batsch SGD에서 각 배치에서 샘플이 랜덤하게 선택되기 때문에 gradient descending은 random porcess였음. large batch size가 기울기의 nosie를 감소시켰기 때..
복습 약 10년 전에는 sigmoid가 아주 유명했지만, gradient Vanishing 문제가 발생함에 따라서 대부분 ReLU를 사용하고 있습니다. 또한 가중치 초기화에 대해 배웠습니다. 가중치 초기화가 너무 작으면 activation이 사라지고, 너무 크게 되면 결국엔 explode 되어 학습이 안 되게 됩니다. ) 그리고 데이터 전처리에 대해서 배웠습니다. 왜 normalization이 필요한가에 대해서 좀 더 자세히 말한다면, 손실함수가 아주 약간의 가중치 변화에도 민감하기 때문에, 동일한 함수를 쓰더라도 학습이 어렵기 때문입니다. 반면 zero-center, unit variance인 경우 손실함수가 덜 민감해지기 때문에 최적화가 싶고 학습이 더 잘되는 효과가 있기 때문입니다. 이론상으로는 성..
2016년 NIPS에서 Andrew Ng이 미래에는 Transfer learning이 훨씬 더 중요해질 것이라고 예언을 하였다. Transfer learning이 중요해진 이유는 더 짧은 시간에 적은 데이터의 양으로 학습을 진행할 수 있기 때문에 실무에서는 많이 쓰고 있는 상황이다. 1. Transfer learing의 정의 Transfer learning의 개념은 대규모 데이터를 대상으로 학습이 진행된 모델을, 상대적으로 유사한, 새로운 데이터셋으로 학습을 시키는 것이다. 학습의 가중치를 재사용함으로써 데이터의 수집에 대한 비용을 감소하고, 바로 활용을 할 수 있도록 하는 것이다. 2. Transfer learning의 원리 앞단의 layer의 경우, 범용적인 특성을 가지고 있고, layer가 깊어질 ..
numpy와 tensor와의 관계 tensor : 호환성이 낮지만 gpu나 tensorflow 내부의 기능을 극대화 가능함 numpy : 호환성이 좋지만 tensorflow 기능을 극대화 하지 못함. tensorflow 외 pytorch에서도 사용 가능함 # numpy 기반 cifar10 데이터셋 (X_train, y_train), (X_test, y_test) = tf.keras.datasets.cifar10.load_data() # 방법1 : 데이터셋 전체를 기반으로 데이터를 만들어줌 tf.data.Dataset.from_tensors(X_train) tf.data.Dataset.from_tensors((X_train, y_train)) # 방법2 : 데이터 1개를 기반으로 만들어 줌 -> ML에 더..
tf.data : ML에 필요한 데이터 및 HW도 보장해줌 pipeline : ML 전 과정을 흐름에 따라 만드는 것, data가 중요함에 따라 data 자체의 흐름을 나타낸 것을 data pipelines. 왜 data pieline이 중요할까? 갈수록 data가 중요해지기 때문에. model이 크면 클수록 성능이 좋아지기 때문에, 그 성능을 좋게 하기 위해선 data를 많이 확보해야 함. data가 ML 입장에서는 항상 부족함. ML model에 입력하기 전까지의 data의 처리 과정을 data pipeline이라고 하고, NN 기반인 deep learning에 한정되어 있음. data가 많아도 순서에 따라 model의 성능이 결정되기도 함. 따라서 data를 섞어야 함. data를 섞는 것 자체도 ..
Hanna 한나
'공부하는삶' 카테고리의 글 목록 (5 Page)