본문 바로가기
728x90
반응형
SMALL

DNN with Keras72

L1 / L2 정규화 L1 (Lasso) Regularization LASSO (Least Absolute Shrinkage and Selection Operator)라고도 하는 L1 정규화를 사용하여 신경망에서 희소성을 생성해야 한다. 즉, L1 알고리즘은 많은 가중치 연결을 거의 0으로 밀어넣는다. 가중치가 0에 가까우면 프로그램이 네트워크에서 가중치를 삭제한다. 가중 연결을 삭제하면 희소 신경망이 생성된다. 기능 선택은 희소 신경망의 유용한 부산물이다. 특징은 훈련 세트가 입력 뉴런에 제공하는 값이다. 입력 뉴런의 모든 가중치가 0에 도달하면 신경망 훈련은 기능이 불필요하다고 판단한다. 데이터 세트에 불필요한 입력 기능이 많은 경우 L1 정규화를 통해 신경망이 불필요한 기능을 감지하고 무시할 수 있다. L1은 목표에 다.. 2023. 7. 24.
결측치 (Missing Values) / 특이치 (Outliers) 결측치 (Missing Values) 결측치는 기계 학습의 현실이다. 모든 데이터 행에는 모든 열에 대한 값이 있는 것이 이상적이다. 하지만, 이것은 거의 그렇지 않다. 일반적인 방법은 결측값을 해당 열의 중앙값으로 바꾸는 것이다. 이 프로그램은 중앙값 (median)을 계산한다. csv 파일을 다운받는다. import os import pandas as pd df = pd.read_csv('auto-mpg.csv', na_values = ['NA', '?']) print(f"horsepower has na? {pd.isnull(df['horsepower']).values.any()}") print("Filling missing values ...") med = df['horsepower'].median.. 2023. 5. 1.
정규화 (Regularization) 정규화 (Regularization) 정규화는 과적합을 줄이는 기술로, 신경망이 훈련 데이터를 학습하기보다는 암기하려고 할 때 발생한다. 인간은 또한 과적합을 할 수 있다. 기계가 어떻게 우연히 과적합되는지를 조사하기 전에, 먼저 인간이 어떻게 기계로부터 고통을 받을 수 있는지를 탐구해야 한다. 인간 프로그래머들은 종종 주어진 프로그래밍 언어로 그들의 능력을 보여주기 위해 자격증 시험을 치른다. 이러한 시험을 준비하는 것을 돕기 위해, 시험 제작자들은 종종 연습 시험을 이용할 수 있게 한다. 연습 시험을 보고, 더 공부하고, 그리고 나서 연습 시험을 다시 보는 루프에 들어가는 프로그래머를 생각해보자. 프로그래머는 개별 문제를 파악하는 데 필요한 기술을 배우기보다는 어느 시점에서 연습 시험의 많은 부분을 .. 2023. 2. 8.
Programming LSTM with Keras and TensorFlow Programming LSTM with Keras and TensorFlow 전방 연결을 가진 신경망은 항상 첫 번째 숨겨진 계층에 연결된 입력 계층으로 시작한다. 각 숨겨진 계층은 항상 다음 숨겨진 계층에 연결된다. 마지막 숨겨진 계층은 항상 출력 계층에 연결된다. 이러한 연결 방식이 이러한 네트워크를 "feed-forward"라고 부르는 이유이다. 반복 신경망은 역방향 연결도 허용되기 때문에 경직되지 않는다. 반복적인 연결은 층의 뉴런을 이전 층 또는 뉴런 자체에 연결한다. 대부분의 반복 신경망 아키텍처는 반복 연결에서 상태를 유지한다. 피드포워드 신경망은 어떤 상태도 유지하지 않는다. LSTM LSTM (Long Short Term Memory) 레이어는 심층 신경망과 함께 자주 사용하는 반복 단위.. 2022. 12. 6.
Data Encoding Data Encoding 시간이 지남에 따라 신경망에 데이터를 인코딩하는 많은 다양한 방법이 있다. 시계열 인코딩은 시간이 지남에 따라 발생하는 이벤트를 신경망에 표현하는 것을 다룬다. 순방향 신경망은 항상 주어진 입력 벡터에 대해 동일한 출력 벡터를 생성하기 때문에 이 인코딩이 필요하다. 순환 신경망은 시간이 지남에 따라 발생하는 데이터를 자동으로 처리할 수 있기 때문에 시계열 데이터를 인코딩할 필요가 없다. from IPython.display import display, HTML import pandas as pd import numpy as np x = [[32], [41], [39], [20], [15]] y = [1,-1,0,-1,1] x = np.array(x) print(x[ :, 0]) .. 2022. 12. 1.
[TensorFlow] Mac M1에서 TensorFlow 설치 Mac M1에서 TensorFlow 설치 맥 m1 노트북에 아직 파이썬을 위한 어떤 개발환경이 설치되지 않았다고 가정한다. miniforge를 설치하고 다시 tensorflow를 설치하고 하드웨어 가속기 플러그인인 tensorflow-metal까지 설치한다. https://developer.apple.com/metal/tensorflow-plugin/ brew 설치 $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" $ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users//.zprofile $ eval "$(/opt/homebre.. 2022. 9. 2.
[TensorFlow] The kernel appears to have died. It will restart automatically. config 파일 내 비트수 할당 코드 추가 ./jupyter 폴더 내에 있는 upyter_notebook_config.py을 수정한다. 기존에 디폴트로 설정된 버퍼 값보다 많은 비트수를 할당하면 문제가 해결된다. c.NotebookApp.max_buffer_size = 10000000000000000000000 UnsatisfiableError Python 버전에서 문제가 발생한 경우이다. conda install이 아니라 pip install을 사용한 경우도 아래와 같이 실행해 본다. conda create -n downgrade python=3.7 anaconda # tensorflow 설치 conda install -c conda-forge tensorflow virtualenv 모듈을 사용하여 .. 2022. 8. 29.
TensorFlow Lite (2) What are the quantization possibilities? TFLite가 모델 양자화를 위해 제공하는 두 가지 옵션이 있다. (i) 훈련 후 양자화 (post-training quantization) : 단순히 모델이 훈련된 후 매개변수의 양자화를 수반한다. (ii) 양자화 인식 훈련 (quantization-aware training) : 훈련 시간 동안 모델을 양자화하는 것을 수반한다. 초기 훈련 전에 네트워크 수정이 필요하고 (가짜 양자화 노드 사용) 나중에 변환이 아닌 훈련을 통해 8비트 가중치를 학습한다. 현재로서는 CNN 아키텍처의 하위 집합에 대해서만 사용할 수 있다. Post-training quantization 훈련 후 양자화는 네트워크를 수정할 필요가 없으므로 이전에 훈.. 2022. 8. 23.
TensorFlow Lite (1) What is TensorFlow lite (TFLite)? 배터리와 메모리는 모바일, edge 또는 IoT 장치에 가장 중요한 두 가지 리소스이다. 클라우드나 사내 서버에 비해 제한된 양으로 제공된다. 딥러닝 (DL) 기반 훈련된 모델을 직접 배포하면 리소스가 부족하기 때문에 작동하지 않는다. 따라서, 이러한 장치에 대한 DL 모델 기반 추론은 모델의 다음 특성을 고려해야 한다. (i) 메모리를 절약하려면 크기가 더 작아야 한다. (ii) 배터리 수명을 절약하기 위해 적은 에너지를 소비해야 하고 (iii) 사용자가 모델이 즉시 반응한다고 느낄 수 있도록 낮은 대기 시간 또는 높은 추론 시간을 가져야 한다. 요컨대, 모바일 및 에지 장치에 배포하기 위해 메모리, 에너지 및 프로세서 사용량에 대해 모델을 .. 2022. 8. 23.
Python for Deep Learning Check your Python Installation Python을 설치했으면 다음 코드를 사용하여 Python 및 라이브러리 버전을 확인할 수 있다. GPU가 있다면 케라스가 인식하는지 확인할 수도 있다. import sys import tensorflow.keras import pandas as pd import sklearn as sk import tensorflow as tf check_gpu = len(tf.config.list_physical_devices('GPU'))>0 print(f"Tensor␣Flow␣Version : ␣{tf.__version__}") print(f"Keras␣Version : ␣{tensorflow.keras.__version__}") print() print(f.. 2022. 7. 16.
728x90
반응형
LIST