일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- GCP
- Retry
- chatGPT
- 상관관계
- 공분산
- requests
- XAI
- GenericGBQException
- UDF
- spark udf
- hadoop
- tensorflow text
- API
- flask
- subdag
- youtube data
- airflow subdag
- Airflow
- BigQuery
- grad-cam
- login crawling
- 유튜브 API
- top_k
- integrated gradient
- Counterfactual Explanations
- correlation
- TensorFlow
- session 유지
- API Gateway
- gather_nd
- Today
- Total
목록Machine Learning (95)
데이터과학 삼학년
Explore the Dataset - dataset of births → 실습 > 예측 weight_pounds https://bigquery.cloud.google.com/table/bigquery-public-data:samples.natality Creating the Dataset - 좋은 피처란? > 예측할 시기에 데이터를 얻을 수 있나 - farm_fingerprint와 rand 함수를 이용해서 스몰데이터를 뽑고 쪼개고 할 수 있음 Build the Model - ML 모델 적용 초기에는 train_and_evaluate을 바로 쓰는 것이 아니라 model.train, model.predict를 사용하여 잘작동하는 지 확인후 사용하라 - train_and_evaluate 사용 프로세스 > t..
Preprocessing and feature creations - 데이터를 전체를 한번 보고 파악할 필요 있음 - 카테고리형 변수를 변환시켜 넣어줄 필요 있음 - Feature engineering > Bigquery > Apache Beam > TensorFlow >> discretization → bucketized - feature_column에서 전처리를 해야지 그래프와 함께 저장되서 서브인풋이 들어와도 잘 처리할 수 있음 > feature_column에서는 사칙연산을 쓰지 않고, input_fn에서 함수하나 만들어서 쓰는 것이 낫지 - Normalization은 feature_column 에서 바로 적용할 수 있음 > normalization function을 만들어서 넣어주는 형식 Prepr..
Apache Beam / Cloud Dataflow - apache beam을 이용해서 pipeline을 구성할 수 있음 > realtime data → cloud pub/sub, batch data → cloud storage 데이터 공급받아옴 > GCP에서 apache beam을 위한 환경 → dataflow > pCollection : 병렬 처리, 알아서 노드 형성하며 실행됨 - grep.py라는 파이썬파일로 pipeline을 구성(아래 그림은 아주 기초) - 로컬 환경에서 실행하려면 그냥 실행시키면 되고, cloud dataflow에서 적용하고 싶으면 몇개 인자만 추가하여 실행 시키면 됨(아래 그림 참고) - dataflow 구성하는 코드 - 아파치 빔~~~맵리듀스 기반으로 발전된 형태임 - ma..
Custom Estimator - 모델을 만들때 wrapping을 해줘서 estimator 형태로 들어가게 해줘야함 - estimator 안에 model_fn=custom_model을 적용하면 됨 - output 설정은 estimatorspec에 들어가게 됨 - 아래는 윗 그림의 그린 파트에 해당하는 내용임 > loss, optimizer, metric을 정해줌 → 그리고 estimatorSpec에서 위에서 정한 값이 나오게 되지 > 참고 : https://www.tensorflow.org/tutorials/estimator/keras_model_to_estimator Keras - 모델을 만들기 쉽고, 직관적으로 이해하기 쉬움 > 분산 처리를 위해 keras를 estimator에 넣음 → model_t..
Hyperparameter Tuning - 트레이닝 단계 전에 미리 입력해줘야하는 값 - loss의 정도를 보고 hyper parameter를 조정할 수 있음 - 구글 gcp에서는 하이퍼파라미터 튜닝을 위한 시스템(?)을 마련하여 놓았음 - 보통 grid search를 통해 가능한 케이스를 만들어 놓고 결과를 확인하는 방식으로 실행 > yaml 파일을 만들어서 가능 케이스 gcp로 보내줌 - maxParallelTrials 가 1이면 순차적으로 trial을 실행하는 것 > 이는 조금 하이퍼 파라미터 튜닝이 느리지만, 이전의 하이퍼파라미터 튜닝 결과를 가지고, 다음 단계에서는 더 나은 방향으로 하이퍼 파라미터 튜닝을 실시함 - small 데이터로 하이퍼파라미터 튜닝을 완료한 후 그 값을 비교하고 최적의 하..
Dropout - randomly 하게 node(neuron)를 제거 하면서 학습하여 앙상블 효과와 overfitting을 막음 > 특정 경로로 weight가 치중되는 문제를 막음 > 앙상블 러닝으로 볼 수 있음 → random forest의 경우, 트리를 여러번 타면서 overfitting을 방지하는 것과 비슷한 원리 - train 단계에서는 사용하지만 test단계에서는 dropout을 실행하면 안돼!!! - 일반적으로 0.2를 적용하여 80%의 뉴런을 사용함 > 학습이후에는 학습된 수치에 드랍아웃된 비율만큼 나눠줌 → 드랍아웃 비율 만큼 weight가 과다 산정되었을 것이기 때문
Optimization - 보통 adam을 많이 씀 → 제일 마지막에 바꾸는 하이퍼파라미터 > learing rate은 옵티마이저 안에 정의하게 되고, regularization도 마찬가지여 - 하이퍼파라미터 정의하는 위치를 기억하자!!! > train_and_evaluate에서는 train steps을 정할때 spec 부분에서 정의함 >> input_fn → optimizer → model → train → test
Learning rate and Batch size - learning rate 는 최적화를 위해 어느 정도의 step size를 가질 것이냐 결정 > 너무 작으면 training이 오래 걸릴 것이요, 너무 크면 학습이 잘되지 않을 것임 > 보통 0.2보다 작은 값이나 1 / (sqrt(feature 개수)) 로 정함 - batch size가 너무 작으면 training 하기에 적합한 데이터 셋이 없을 수 있음 → 그래디언트를 계산할 샘플수 >> batch size가 크면 learning rate를 작게 줄이는 것이 실험적으로 좋다는 논문