정규화

Develop/ComputerScience

[DB] 정규화

정규화란 데이터베이스 설계에서 테이블 간에 중복된 데이터를 허용하지 않고 무결성을 유지하기 위한 과정이다. 이는 데이터를 효과적으로 저장하고 검색하기 위해 테이블을 구조화하는 프로세스를 의미한다. 정규화는 관계형 데이터베이스에서 사용되며, 데이터의 중복을 최소화하고 각 테이블이 특정 종류의 종속성을 만족하는 데 목적을 둔다. 목적 최종 목적은 이상 현상 발생 가능성을 줄이는 것이다. 중복 최소화 데이터의 중복을 최소화하여 저장 공간을 절약하고 데이터 일관성을 유지한다. 데이터가 중복될 경우 수정이 필요할 때 여러 테이블에서 수정해야 하므로 문제가 될 수 있다. 데이터 일관성 유지 각 테이블이 특정 종류의 종속성을 갖도록 한다. 데이터의 논리적 일관성을 확보하고 변경 시 발생할 수 있는 이상 현상을 방지한..

AI/MachineLearning

배치 정규화(Batch Normalization)

배치 정규화(Batch Normalization)는 정규화를 모델에 들어가는 입력 데이터뿐만 아니라 모델 내부 히든층의 입력 노드에도 적용하는 것이다. 배치 정규화를 적용하면 매 층마다 정규화를 진행하므로 가중치 초기값에 크게 의존하지 않는다. 즉, 가중치 초기화의 중요도가 감소한다. 또한 과적합을 억제한다. 즉, 드롭 아웃(Drop out)과 L1, L2 정규화의 필요성이 감소한다. 가장 큰 장점은 학습 속도도 빨라진다는 것이다. 배치 정규화를 사용하기 위한 함수/라이브러리 배치 정규화는 하나의 레이어로써 Dense 레이어와 활성화 함수 사이에서 작용한다. 따라서 이번 실습에서는 기본 모델을 생성할 때 활성화 함수와 똑같은 역할을 하는 Activation 레이어를 따로 활용해야 한다. tf.keras...

AI/MachineLearning

드롭 아웃(Drop out) 기법

드롭 아웃(Drop Out)은 모델이 과적합되는 것을 막기 위한 가장 보편적인 정규화(Regularization) 기법 중 하나이다. 드롭 아웃은 데이터를 학습할 때, 일부 퍼셉트론(뉴런)을 랜덤하게 0으로 만들어 모델 내부의 특정 가중치(Weight)에 치중되는 것을 막는다. 이를 통해 모델이 일부 데이터에 가중되는 것을 막고 일반화된 모델을 만들 수 있다. 드롭 아웃을 사용하는데 있어 주의할 점은 학습이 끝난 후 테스트 과정에서는 드롭 아웃을 사용하면 안된다는 점이다. 이번 실습에선 드롭 아웃을 적용한 모델과 적용하지 않은 모델의 차이를 보자. 드롭 아웃을 사용하기 위한 함수/라이브러리 tf.keras.layers.Dropout(prob) prob : 드롭 아웃을 적용할 확률 (0.1 ~ 0.5) i..

AI/MachineLearning

L1, L2 정규화(Regularization) 기법

L1 정규화 L1 정규화는 가중치(weight)의 절댓값에 비례하는 손실(loss)이 기존 손실 함수(loss function)에 추가되는 형태이다. TotalLoss=Loss+λw∑​∣W∣ L1 정규화는 모델 내의 일부 가중치를 0으로 만들어 의미있는 가중치만 남도록 만들어주고, 이를 통해 모델을 일반화시킬 수 있다. 다른 말로 Sparse Model을 만든다라고도 한다. L1 정규화를 적용하기 위해 사용하는 함수/라이브러리 tf.keras.layers.Dense(kernel_regularizer = tf.keras.regularizers.l1(ratio)) ratio : 가중치에 L1 정규화를 적용하는 비율 (0.001 ~0.005) L2 정규화 L2 정규화는 가중치의 제곱에 비례하는 손실이 기존 손..

AI/MachineLearning

과적합 방지 기법 - 정규화

릿지(Ridge), 라쏘(Lasso) 회귀를 위한 사이킷런 라이브러리/함수 from sklearn.linear_model import Ridge : 사이킷런에 저장된 릿지회귀를 불러옵니다. Ridge(alpha) : 릿지 회귀를 정의합니다. alpha : 기본값은 1입니다. alpha값이 클수록 더 강한 정규화를 적용합니다. from sklearn.linear_model import Lasso : 사이킷런에 저장된 라쏘회귀를 불러옵니다. Lasso(alpha) : 라쏘 회귀를 정의합니다. alpha: 기본값은 1입니다. alpha값이 클수록 더 강한 정규화를 적용합니다. import matplotlib.pyplot as plt import pandas as pd import numpy as np from..

AI/MachineLearning

과적합과 정규화

과적합(Overfitting)이란? 모델이 주어진 훈련 데이터에 과도하게 맞춰져서 새로운 데이터가 입력 되었을 때 잘 예측하지 못하는 현상 즉, 모델이 과도하게 복잡해져 일반성이 떨어진 경우를 의미함 과적합 방지 방법 1. 교차검증 (Cross Validation) 모델이 잘 적합되었는지 알아보기 위해 훈련용 데이터와 별개의 테스트 데이터, 그리고 검증 데이터로 나누어 성능 평가하는 방법 k-fold 교차검증 : 훈련 데이터를 계속 변경하며 모델을 훈련시킴. 데이터를 k등분으로 나누고 K번 훈련시킴. 2. 정규화 모델의 복잡성을 줄여 일반화된 모델을 구현하기 위한 방법 -> 모델 베타i에 패널티를 부여함 L1 정규화 (Lasso) : 불필요한 입력값에 대응되는 베타i를 정확히 0으로 만듦. L2 정규화 ..

향식이
'정규화' 태그의 글 목록