Deep learning 43

EfficientNetV2

EfficientnetV2, Smaller Models and Faster Training 빠른 학습에 집중한 모델이다. EfficientNetV2의 파라미터 수를 비교했을때에 월등히 파라미터의 수가 적고, 이는 그만큼 효율적인 모델임을 증명해주는 부분이다. 큰 이미지로 하면 학습속도가 느림 / 초기 layer에서 depthwise convolution / 모든 stage를 동일한 비율로 scaling하는 것이 최적의 방법이 아님. 그래서 소개한 전략 1. progressive learning 2. fused-MBC convolution 3. Non-uniform Scaling 이 중에서 Progressive learning에 대해서 살펴보면 :Progressive Learning 이란 트레이닝 할때 이..

Deep learning 2021.08.30

Keras Tuner hyperband only trains 2 epochs

아니 학습이 tuner initial epoch : 0 tuner epoch : 2 총 2 epoch 까지밖에 안되길래 찾아봣는데 원래 이런방식이라는 stack overflow ... 그전에 했을때는 max epoch = 50까지 넣으면 25부터 시작해서 알아서 해주던데 또 방법을 찾아보자 왜그랬냐 봤더니 hyperband tuner는 초반에 작은 epoch로 학습을 한다음에 좋은거를 찾아서 더 훈련시키기 때문이라고 한다. 이전에 돌린 걸 보면 76 Trial이 있고 그래서 max epoch = 50으로 설정해두니까 25부터 알아서 학습을 더 진행한 것 같다. 지금 돌리고 있는 코드도 여러번 trial을 시도하다 보면 나중에는 더 많은 epoch로 학습을 진행하지 않을까 하는 예상... 실제로 테스트 해..

Deep learning/Error 2021.08.25

Keras Tuner Custom objective 설정 방법

나같은 실수를 하는 사람이 또 있을까봐 남겨둔다... 튜너를 분명 사용했는데 f1 score이 무슨일이지.? 당황스럽고 황당하다,, 테스트를 해봐도 결과가 좋을리가 없지 역시 f1 accuracy direction이 min이 되어있고 val_f1_score direction이 min이 되어있다 이게 무슨일이야... 나는 설정한 적이 없는데 새로 정의되어서 들어가는 값은 디폴트로 min값이 들어가는 것 같다 keras tuner를 돌린 의미가 없어진건가... ㅠㅠㅠㅠ 또 에러 해결해보자 ~~! Custom 하게 metrics를 Compile해서 tuner hyperband 돌릴 때는 string일 경우 direction 설정을 해줘야한다고 했는데 해봤는데 이게 무슨 일이지 내가 설정해준 val_f1_sco..

Deep learning 2021.08.25

Keras Tuner 사용방법(튜토리얼)

돌려 놓고 퇴근헀더니 16시간째 돌아가고 있는 이 커널,, 이번 게시글은 keras tuner 사용법에 관한 글이다. 중간에 멈추면 어떻게 되는지에 대해서 찾아봤더니 체크포인트 저장을 위에서 프로젝트 이름이랑 directory로 해놔서 그 다음에 돌려도 그 이후 부터 돌아간다고 하는데 무서워서 끄지를 못하고 있는 상황이었다... CPU로 일단 간단한 MNIST 데이터로 실험을 해보고 끄기로 했다 결과는 !! ? Trial 16까지 하고 멈추고 다시 실행헀더니 17부터 실행된다 똑똑해 Keras Tuner~!~! 이대로라면 그럼 내가 돌리고 있는 애도 중간에 멈춰도 checkpoint로 저장되어있기 때문에 그 다음부터 실행이 가능할 것 같다. 오늘 제발 내가 지금까지 돌려서 prediction 한 것 보다..

Deep learning 2021.08.24

Hyperband (Successive halving Algorithm 보완한 알고리즘)

케라스 튜너에는 1. RandomSearch The basic and least efficient approach, Random Search doesn’t learn from previously tested hyperparameter combinations. It simply samples hyperparameter combinations from a search space randomly. 2. Hyperband Hyperband tuner is an optimized version of random search tuner which uses early-stopping to speed up the hyperparameter tuning process. The main idea is to fit a la..

RuntimeError : Model-building function did not return a valid Keras Model instance, found None

RuntimeError: Model-building function did not return a valid Keras Model instance, found None 케라스 튜너 에러 해결 방법 ! 오늘 이걸로 몇시간을 회사에서 시간을 보냈는지,,,, Error 를 마주해서 못풀면 너무 너무 답답하다,,, 이 글을 보는 모든 분들은 바로바로 해결하고 넘어가셨으면 좋곘다 : ) 아니 아무리 구글링해도 from tensorflow.keras import layers, models 로 바꿔서 하라는데 긍까 from keras import layers, models로 하면 안된다고함 !! 근데 keras -> tensorflow.keras로 바꿔도 에러가 뜸 # builder 생성하여서 학습하기 간단하게 de..

Deep learning/Error 2021.08.23

Keras Tuner 케라스 튜너 설치

이제 모델의 성능을 높이기 위해서 어떠한 방법들을 사용해야하는지 찾던 중 keras-tuner를 알게되었다. 최적의 모델을 위해서 모델의 요소값을 찾는 과정을 Hyper-prameter Tunning이라고 한다. 모델의 하이퍼파라미터 요소의 개수가 적고 많음에 따라 모델의 성능은 바뀔수 있고 이를 용이하게 하기 위해서 구글에서 케라스 튜너라는 프레임 워크를 개발했다. https://youtu.be/Un0JDL3i5Hg Automatic hyperparmeter tuner : keras tuner and tensorflow 2.0 to boost accuracy 1. Tuner is defined - determine which hyperparmeter combinations hsould be tested..

Deep learning 2021.08.23

Error : Running pip as the 'root' user can result in broken permission and conflicting behaviour with the system package manager

sudo pip install 을 할뻔했지만 시스템이 망가질 수도 있다는 구글링을 통해서 해결방법을 찾는중,,, keras-tuner를 설치하기 위해서 docker container안에서 저 명령어를 쳤을때 저렇게 나왔다. 방법을 구글링해보니 계속 virtual environment에서 하라고 하는데 내가 지금 실행하고 있는 환경은 도커이기 때문에 도커 컨테이너 들어가기전 서버 terminal에서 설치하고 컨테이너안으로 들어가보니까 설치가 되어있는 것을 확인할 수 있었다. 해결 ~!

Deep learning/Error 2021.08.20

adversarial sample

같은 팬더 사진임에도 불구하고 긴팔원숭이라고 인식하도록 만든 noiise를 합성하게 되면 왼쪽의 그림의 팬더는 팬더로 인식하고, 오른쪽 그림의 팬더는 긴팔원숭이로 모델이 인식하게 된다. 오른쪽과 같은 샘플을 adversarial sample 이라고하고, 이러한 행위를 딥 네트워크가 인식하는 것을 방해하기 위한 행위라고 하여, adversarial attack 이라고 부릅니다. Adversarial sample에서 가장 중요한 사실은, 사람이 서로 차이를 인지하지 못할 만큼 비슷하게 생긴 두 샘플이 딥 네트워크의 시각에서는 서로 매우 다른 샘플일 수 있다는 점입니다. 또 한 가지 중요한 사실은, 이 sample들은 자연계에는 존재하기 어려운 샘플이며, 특정 목적을 가지고 인위적으로 생성할 때 비교적 쉽게 ..

Optimizer

Imbalanced Data를 preprocessing 하기 위해서 Class weights 방법을 사용하지만 이러한 결과로 Back propagation에 영향을 많이 주기 때문에 optimizer를 어떠한 것을 고르는지가 학습의 결과에 큰 영향을 미친다. SGD와 같이 기울기의 크기를 바로 계산하여 update하는 방식은 사용할 수 없기 떄문에, Scaling Change에 상대적으로 영향을 덜 받는 Adam과 같은 optimizer를 사용해야한다. Optimization을 하기 위한 고려사항은 크게 3가지가 존재한다. 1. Local Minima 2. Plateau 3 Zigxag Logcal Minima 문제는 에러를 최소화시키는 최적의 파라미터를 찾는 문제에 있어서 파라미터의 공간에 수많은 ho..

Deep learning 2021.08.18