반응형

pagefile.sys파일은 왜 생길까?

코딩을 하면서 빅데이터와 용량이 큰 모델을 돌리다 보니 내 컴퓨터가 힘들었나보다..ㅠㅠ

내가 준 16GB 메모리로도 부족했는지 가상메모리를 잡아서 사용하고 있었다.


pagefile.sys


이와 같이 pagefile.sys라는 파일이 42GB나 차지하고 있었다!!


이 파일은 컴퓨터 작업을 할 때 PC가 메모리가 부족하다고 생각하면 저장장치(HDD/SSD)에 가상메모리를 할당하는 파일을 만들고 해당 파일을 메모리처럼 사용한다.


어쩐지 딥러닝 모델을 돌리고 있는데 내 컴퓨터의 메모리 사용량이 거의 99%를 왔다갔다하면서 다시 줄어드는 것을 봤는데 그게 pagefile.sys를 만들어 가상메모리로 활용하고 있어서 그런것 같다 ㅎㅎ

memory 사용량


이제 모델을 다 돌리고 난 후 필요가 없으니 나의 소중한 SSD 메모리를 돌려보자!

pagefile.sys 파일을 삭제해보자!

우선 시스템 속성에서 고급 시스템 설정으로 들어가 보자

  1. 폴더 좌측에서 내 pc에 마우스 우클릭을 누르고 맨 아래 속성버튼 클릭!!
    img1

  2. 설정창이 뜨는데 여기서 우측 관련 성정에 보면 고급 시스템 설정이 있다 이것을 클릭!!
    image

  3. 시스템 속성 고급 탭에서 맨위 성능 부분의 설정 클릭!!
    image

  4. 성능 옵션 속성의 고급 탭에서 변경을 클릭!!
    image

  5. 사진의 순서대로 모든 드라이브에 대한 페이징 파일 크기 자동 관리(A) 체크 해제!

  6. 페이징 파일 없음(N) 체크
    image

  7. 설정 클릭 후 아니오 선택
    image

  8. 이후 컴퓨터 재시작을하면 가상메모리를 지정하지 않는다.


하지만 나는 나중에 딥러닝 모델을 돌릴 경우 기본 메모리가 부족하는 상황이 발생할 수 있으니 다시 할당할 수 있도록 설정하기위해 이전에 체크를 해제했던 모든 드라이브에 대한 페이징 파일 크기 자동 관리(A)를 체크를 해주었다!!


이렇게 갑자기 사라진줄 알았던 나의 메모리를 찾는 방법을 알아보았습니다!! 감사합니다 ㅎㅎ

반응형
반응형

활성화 함수 정의

입력된 데이터의 가중 합을 출력 신호로 변환하는 함수이다.

인공 신경망에서 이전 레이어에 대한 가중 합의 크기에 따라 활성 여부가 결정된다. 신경망의 목적에 따라, 혹은 레이어의 역할에 따라 선택적으로 적용한다.

활성화 함수 종류

1. 계단 함수(step function)

Untitled

  • 정의 및 특징
    • 가장 간단한 활성화 함수로 임계치를 기준으로 0 or 1의 이산적인 값을 출력한다
    • 대표적으로 퍼셉트론에서 사용된 활성화 함수이다
  • 단점
    • 인공신경망에서 사용할 경우 x=0에서 기울기가 $\infty$ 되어 미분이 불가능하여 오류가 발생한다
    • 따라서 단일 퍼셉트론에서만 사용되고 딥러닝에서는 부적절하다.

2. 시그모이드 함수(sigmoid function)

Untitled 1

  • 정의 및 특징
    • 전체 실수 범위에서 0 ~ 1 사이의 값을 출력한다
    • Binary classification(이진 분류)에 사용되는 대표적인 활성화 함수다
    • 선형 분류(linear classification)에서의 한계를 극복하여 만들어진 활성화 함수이다
    • 모든 구간에서 미분가능하여 신경망 모델에서 활성화 함수로 사용된다
  • 단점
    • 정의역의 절댓값 커질수록 미분 값 0으로 수렴하게 된다. 때문에 가중치가 업데이트되지 않고 소실되는 Gradient vanishing이 발생할 수 있다.
    • 함수의 중심값이 0이 아니고 결과가 모두 0이상의 값이어서 학습이 느려질 수 있다.(참고 URL)

3. Tanh 함수

Untitled 2

  • 정의
    • Hyperbolic Tangent Function으로 쌍곡선 함수 중 하나이다
    • Sigmoid function을 변형하여 얻을 수 있다.$$tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}$$
    • $$tanh'(x) = 1 - tanh^2(x)$$
    • $$tanh(x) = 2\sigma (2x) -1$$
    • sigmoid 함수의 문제점인 중심값이 0이 아닌 것을 해결하여 학습 속도를 개선 했다
  • 단점
    • 아직 sigmoid 함수의 문제점이었던 Gradient vanishing을 해결하지 못했다

4. ReLU

Untitled 3

  • 정의 및 특징
    • ReLU(Rectified Linear Unit)는 입력 값이 0보다 작으면 0, 0보다 크면 입력 값 그대로 출력하는 함수이다.
    • sigmoid 함수의 단점인 Gradient Vanishing 문제를 해결해준다
    • 단순하지만 성능이 좋아 현재까지 많이 사용되는 활성화 함수이다.
  • 단점
    • 가중합이 음수이면 0을 출력하기 때문에 노드들은 다시 활성화 되지 않는 dying Relu 현상이 발생한다.(knockout문제)

5. leakyReLU 함수

Untitled 4

  • 정의 및 특징
    • 입력값이 x < 0 일 때 기울기가 0이어서 뉴런이 죽을 수 있다는 ReLU 함수의 단점(knockout문제)을 해결하기 위한 함수이다
    • $f(x)=\max(\alpha x, x)$ 이며 $\alpha$은 사용자 지정 값이다.(보통 0.01을 많이 사용한다)
  • 참고
    • 이론상으로는 knock out이 발생할 수 있지만 실제 사용에서는 거의 발생하지 않는다
    • 0이하에서 RuLU는 연산 비용이 크지 않아 leakyReLU보다 연산 속도가 빨르다
    • mean activation이 0에 가까울수록 학습 속도가 더 빨라진다(큰차이x)
    • Relu와 leaky ReLU 중 어느것이 더 좋다고 할 수 없다

6. PReLU

Untitled 5

  • 정의 및 특징
    • Parametric rectified linear unit으로 leakyReLU에서 $\alpha$ 값도 학습하여 변경 가능한 활성화 함수
    • $f(x)=\max(\alpha x, x)$ 이며 $\alpha$ 는 스스로 학습하여 조정하는 파라미터이다.
  • 참고
    • 이론상으로는 knock out이 발생할 수 있지만 실제 사용에서는 거의 발생하지 않는다
    • 0이하에서 RuLU는 연산 비용이 크지 않아 leakyReLU보다 연산 속도가 빨르다
    • mean activation이 0에 가까울수록 학습 속도가 더 빨라진다(큰차이x)
    • Relu와 leaky ReLU 중 어느것이 더 좋다고 할 수 없다

7. Elu

Untitled 6

  • 정의 및 특징
    • ELU(Exponential Linear Unit)는 ReLU와 형태가 비슷하지만 0에서 첨점이 아니기 때문에 0에서도 미분할 수 있다.
    • ReLU의 모든 장점을 가지고 있어서 자주 활용 된다
  • 단점
    • ReLU와 다르게 exp연산이 사용되어 연산 비용이 많이든다
  • 변형
    • $\alpha$를 1 이외의값으로 정할 경우 SeLU(scaled exponential linear unit)이라 부른다
    • 왼쪽 그림은 $\alpha$ = 2인 그래프
  • Untitled 7

8. Swish

Untitled 8

  • 정의 및 특징
    • sigmoidd 함수에 x를 곱한 함수
    • 구글에서 ReLU를 대체하기 위해 만든 함수
    • 깊은 레이얼르 학습시킬 때 ReLU보다 뛰어난 성능을 보여준다
    • CNN을 활용한 모델 mobilenet을 학습시키는데 사용되었다

9. 기타 함수

  • Softplus
    • ReLU 함수를 부드럽게 깍아높은 함수
    • 미분하면 sigmoid 함수가 된다
  • Untitled 9
  • Softsign
    • tanh 함수와 거의 유사한 형태의 함수
    • tanh를 대체하기 위해 고안된 함수이다
  • Untitled 10

Reference

bit.ly/3dwXcqA

bit.ly/3h9ZbUj

bit.ly/2UkE4W3

반응형

'AI > DeepLearning' 카테고리의 다른 글

DNN(심층신경망)  (4) 2021.07.14
ANN(인공신경망)  (1) 2021.07.12
Deep Convolutional Neural Network  (1) 2020.11.08
Introduction to Deep Learning  (4) 2020.10.19
반응형

DNN(심층 신경망)의 정의

인공 신경망(ANN)에서 은닉층(hidden layer)이 2개 이상 가지고 있는 모델

Untitled

hidden layer가 많아 질 수록 다양한 표현이 가능하고 정확도도 증가하게 된다. HW(하드웨어)의 기술이 발전하면서 연산 처리속도가 증가하여 ANN의 학습시간이 오래 걸리는 것을 극복하고 DNN을 많이 사용한다. DNN을 응용하여 CNN, RNN 등 다양한 모델이 등장한다.

DNN의 등장 배경

Backpropagation의 등장으로 ANN은 1990년대 초반까지 크게 발전하고 많이 사용 되었다.
하지만 인공신경망에는 2가지 큰 문제점이 존재한다

ANN의 중요한 2가지 문제점

1. 신경망의 깊이가 깊어질 낮아지는 정확도(Gradient Vanishing)

Untitled 1

은닉층을 많이 쌓을 수록 더 많은 feature를 표현할 수 있어서 정확도가 좋아져야 하는 것이 인공신경망의 강점이다. 하지만 깊은 인공 신경망을 학습하다보면 역전파 과정에서 입력층으로 갈 수록 기울기(Gradient)가 점차적으로 작아지는 현상이 발생한다. 이러한 이유 때문에 가중치의 값이 올바르게 업데이트가 되지않아 최적의 파라미터를 찾을 수 없게된다.

2. 파라미터 값의 최적화에 대한 이론적 근거가 없다

신경망은 학습을 위한 여러 파라미터로 층 수나 유닛의 수를 갖는데, 당시에는 이 파라미터가 최종적으로 어떻게 성능으로 이어지는지를 알 수 없었다. 따라서 좋은 성능을 이끌어내기 위한 파라미터들에 대한 노하우는 있었지만 이론적인 근거가 없었다는 것이다.(Black box) 또한 이시기에 SVM, Random Forest등 새로운 Machine Learning학습 알고리즘이 등장하면서 ANN의 침체기가 시작되었다.

ANN의 문제점을 해결한 Deep의 출현

2006년 제프리 힌튼(Geoffrey Hinton)이 "A fast learning algorithm for deep belief nets" 라는 논문을 통해 "weight의 초기값을 제대로 설정하면 깊은 신경망학습이 가능하다" 라는 것을 보였다

💡 신경망을 학습시키기 전에 층 단위의 학습을 거쳐 더 나은 초기값을 얻는 사전훈련(pre-training) 의 최초 아이디어가 제안된 것

2006년 Deep Network. Deep Learning 이라는 용어가 사용되기 시작했다.

반응형

'AI > DeepLearning' 카테고리의 다른 글

DeepLearning에 사용되는 Activation Function 정리  (0) 2021.07.18
ANN(인공신경망)  (1) 2021.07.12
Deep Convolutional Neural Network  (1) 2020.11.08
Introduction to Deep Learning  (4) 2020.10.19
반응형

ANN(Artificial Neural Network) 이란?

💡 사람의 신경망 원리와 구조를 모방하여 만든 기계학습 알고리즘

  • 사람의 신경망
    뉴런들이 어떤 신호, 자극 등을 받고, 특정 임계값(Threshold)을 넘어서면 결과 신호를 전달하는 과정

1. Perceptron

💡 사람의 뉴런을 모방한 최조의 신경망 모델
(프랭크 로젠블럿(Frank Rosenblatt)은 1957년에 발표)

Untitled

[좌]뉴런(Neuron), [우]인공 뉴런(artificial neuron, 퍼셉트론)

Untitled 1

퍼셉트론의 구조

뉴런(Neuron)은 생물의 신경계를 이루는 신경 세포로 Dendrite(수상돌기), Soma(세포체), Axon(축삭돌기)를 추상화하여 위 그림의 우측과 같이 인공 뉴런을 구현하였다.

  • Dendrite(수상 돌기): 전기적 신호를 통해 입력 신호를 받는 기능을 수행한다. 인공 뉴런에서는 벡터의 형태로 입력된 데이터 $x=[x_1x_2...x_M]^T$를 전달받는 역할을 한다.
  • Soma(세포체): 수상돌기를 통해 전달받은 입력을 합산하는 기능을 수행한다. 인공 뉴런에서는 각각의 수상돌기의 입력에 weight(가중치) $w=[w_1w_2...x_M]^T$를 곱하여 합산한다. 인공 뉴런에서 soma의 output $s(x;θ)$는 $s(x;θ)=\displaystyle \sum^M_{j=1} w_jx_j + b$로 정의되며, linear function의 형태를 갖는다. 이때 b는 bias라고 하는 linear function의 상수항이며, θ는 인공 뉴런을 구성하는 parameter인 w와 b를 의미한다.
  • Axon(축삭돌기): soma에서 계산된 값을 출력한다. 인공 뉴런에서는 soma에서 출력된 s(x;θ)를 activation function(활성화 함수) f에 입력하여 계산된 output y를 전달한다. 이때 activation function은 s(x;θ)를 바탕으로 어떠한 결정을 내리는 기능을행한다. Activation function으로는 unit step function, sigmoid function, cross entropy 등 다양한 형태의 function을 이용될 수 있다
  • 신경망과 인공 신경망 모델 기능
    • 들어온 자극, 신호 : Input Data
    • 특정 임계값 : 가중치(weight)
    • 자극에 의한 행동 : Output Data

Perceptron의 한계

Untitled 2

AND, OR 과 같은 선형 분류(linear Classification)는 높은 정확도를 보여주었지만. XOR과 같은 비선형 분류는 불가능하다. 이 문제를 해결하기위해 다층 퍼셉트론(MLP) 모델이 등장했다.

다층 퍼셉트론(Multilayer Perceptron)

💡 입력층과 출력층 사이에 1개 이상의 은닉층을 추가한 모델(1986)

비선형 분류가 불가능한 단층 퍼셉트론의 한계를 극복하기 위한 모델이다.

다층 퍼셉트론으로 비선형 문제를 해결할 수 있지만 각각의 weight와 bias를 학습시킬 방법이 없다는 문제점이 발생하였다. 얼마후 해결 방법으로 역전파 알고리즘(Backpropagation Algorithm, 1986)이 발표되어 신경망 모델이 주목 받기 시작했다.(아래 글 참조)

2. ANN의 구조

Untitled 5

다수의 입력을 받는 Input Layer, 데이터의 출력을 담당하는 Ouput Layer, 입력층과 출력층 사이에 존재하는 hidden Layer가 존재한다.

모델을 구성한다고하는 것은 hidden Layer들의 갯수와 노드의 개수를 구성하는 것을 말한다. hidden Layer의 적절한 활성화함수 등을 사용하여 최적의 Weight와 bias를 찾아내는 것을 목표로한다(모델을 잘 구성하는 것)

ANN과 같은 딥러닝 모델은 머신러닝 모델과 다르게 Feature의 정의가 필요하지 않고 학습을 통해 최적의 weight와 bias를 찾아준다.

ANN의 활성화 함수(Activation function)

hidden Layer에서 활성함수는 대표적으로 Sigmoid function을 사용한다. 파라미터를 최적화하기위해서는 활성화 함수가 미분이 가능해야 하기 때문이다.

output Layer에서 활성함수는 크게 3가지가 있다. 출력값 형태에 따라 다른게 사용한다

  • Identical function $(f(x)=x)$ : 마지막 hidden layer에서 입력된 값을 그대로 output에서 사용하는 것이다. 보통 Regression(회기분석)에 사용된다.
  • Softmax function : 주로 Classification(분류)문제에서 사용된다. output 출력 값이 0과 1사이의 값이며 모든 output값들을 합하면 1이 된다. 즉, 출력을 확률값으로 대응할 수 있는 것이다. 특히 Multi-class Classification에 사용된다.
  • Sigmoid function : 주로 hidden Layer에서 사용되는 활성함수로 Classification(분류)문제에서 사용된다. softmax function과는 달리 하나의 데이터가 1개 이상의 class(label)를 동시에 가질 수 있는 Multi-label Classification에 사용 된다.

ANN 학습

역전파(Backpropagation) 방법을 사용하여 학습을 진행한다. 역전파란 예측값과 실제값의 차이(error 또는 loss값)에 따라 반대방향(input layer 방향)으로 error값을 최소화 해주도록 파라미터 조정하여 최적화해주는 방법이다. [역전파 알고리즘]

3. ANN의 문제점

  • 학습과정에서 파라미터의 최적값을 찾기 어렵다.
    • 역전파과정에서 gradient vanishing(기울기 소실)이 발생하여 최적의 파라미터찾기 어려움
  • Overfitting에 따른 문제
  • 학습시간이 너무 느리다
  • 은닉층이 많으면 정확도는 올라가지만 연산량이 증가하여 학습시간이 오래걸린다.
반응형

'AI > DeepLearning' 카테고리의 다른 글

DeepLearning에 사용되는 Activation Function 정리  (0) 2021.07.18
DNN(심층신경망)  (4) 2021.07.14
Deep Convolutional Neural Network  (1) 2020.11.08
Introduction to Deep Learning  (4) 2020.10.19
반응형

참고 코드 Github : bit.ly/3dPkqss

위 링크에서 실습한 코드를 참고해주세요
Followstar 해주시면 감사합니다 👍👍

  • 입력 데이터 Columns
    • Store : 상점 번호(1~45)
    • Dept : 부서
    • Date : 날짜
    • IsHoliday : 특별한 날인지
    • Temperature : 온도
    • Fuel_Price : 유가
    • CPI : 소비자물가지수
    • Unemployment : 실업률
  • 결과 데이터 Columns
    • Weekly Sales : 지정된 상점에서 지정된 부서의 판매
  1. 데이터 시각화
    1. holiday별 매출 평균 비교 
    2. Untitled
    3. Untitled 1
    4. 데이터 시각화 결과 기념일이 있을 때 매출액이 상대적으로 조금 높은것을 알 수 있다
    5. 부서별 매출
      Untitled 2
    6. 각 부서별 매출액을 데이터 시각화한 결과 부서별로 매출액이 차이가 있음을 알 수 있다.
    7. 지점별 총 매출
      Untitled 3
    8. 위그래프는 지점별 매출합 아래그래프는 지점별 매출 평균을 나타낸다 이와같이 지점별로 차이가 있는 것을 알 수 있다
    9. 날짜별 매출
      Untitled 4
    10. 날짜별 매출을 시각화 한 결과 연말마다 매출액이 급증하는 것을 알 수 있다. 참고로 연말에 미국의 추수감사절과 크리스마스가 있어 이러한 그래프를 보이는 것으로 확인된다.
    11. 온도별 매출
      Untitled 5
    12. 추가 feature에 있던 온도는 매출액과 상관관계가 없음을 알 수 있다.
    13. 유가별 매출
      Untitled 6
    14. 유가 또한 매출액 데이터와의 상관관계가 없는것을 알 수 있다.
  2. 데이터 전처리입력 데이터 중 날짜데이터의 경우 각 연도의 주간 매출을 보았을 경우 유사한 흐름을 볼 수 있다. 따라서 날짜 데이터를 주간 데이터로 바꾸어 1 ~ 52 사이의 값으로 처리해주었다. 연도 단위는 최소 20개이상의 연도가 있어야 데이터의 상관관계를 알 수 있지만 데이터가 3개밖에없으므로 학습 파라미터에 추가하지 않았다.
  3. Untitled 7
  4. 데이터간에 큰차이가 있지않아 데이터 스케일링과정을 하지않았다.
  5. 머신러닝 모델LinearRegression, DecisionTree, RandomForest
    • 결과
    • Untitled 8
    • 모델 최적화
        from sklearn.model_selection import GridSearchCV
      
        params ={
            'n_estimators':[50, 100],
            'max_depth':[8,16,32,64],
            'min_samples_leaf':[1,2,3],
            'min_samples_split':[3,4,5,6]
        }
      
        rf_optimize = RandomForestRegressor(random_state=0, n_jobs=-1)
        grid_cv = GridSearchCV(rf_optimize, param_grid=params, cv=2, n_jobs=-1)
        grid_cv.fit(x_train, y_train)
      결과해당 파라미터를 활용하여 다시 학습 결과이전 성능이 높아서 성능 증가 비율은 높지는 않지만 결과적으로 성능이 증가했다.
    • Untitled 10
    • Untitled 9
    • 가장 좋은 성능을 가진 RandomFroestRegressor의 Hyper parameter를 찾아 모델을 최적화하였습니다.
  6. 여러개의 feature중에 상관관계가 있는 것을 feature로 정하였기 때문에 Decision Tree, RandomForest와 같은 머신러닝이 적합하다 생각하여 머신러닝 모델로 선택하게 되었습니다.
  7. 추론 및 결과 제출
    Untitled 11
    12년도 말 부터 13년도 까지의 데이터 중순까지의 데이터로 시각화한 결과학습데이터와 유사한 형태를 보여주고 있다.
  8. Untitled 13
  9. Untitled 12
  10. Test data를 똑같이 데이터 전처리와 최적화된 Random Forest에 적용하여 결과를 추론하였다.
  11. Kaggle Competition에 제출
    Untitled 15
  12. 최종적으로 약 268등의 결과를 낼 수 있었다.
  13. Untitled 14
반응형

'AI > Kaggle' 카테고리의 다른 글

Bag of Words Meets Bag of Popcorn 실습  (4) 2021.07.07
반응형

Bag of Words Meets Bag of Popcorn

실습 code
https://github.com/sejin-k/Kaggle/blob/master/Bag_of_Words_Meets_Bags_of_Popcorn/Bag_of_Words_Meets_Bags_of_Popcorn.ipynb

위 링크에서 실습한 코드를 참고해주세요
Followstar 해주시면 감사합니다

1. Bag of Words Meets Bag of Popcorn

Bag of Words Meets Bag of Popcorn Link
Bag of Words
: 단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도(frequency)에만 집중하는 텍스트 데이터의 수치화 표현 방법입니다

Performance Metric(성능 지표)

Untitled

  • Accuracy(𝐴𝐶𝐶) = $\frac{TP + TN}{FP + FN + TP + TN}$
  • True Positive Rate(TPR) = $\frac{TP}{P} = \frac{TP}{FN + TP}$
  • False Positive Rate(FPR) = $\frac{FP}{N} = \frac{FP}{FP + TN}$
  • Precision(PRE) = $\frac{TP}{TP+FP}$
  • Recall(REC) = $TPR = \frac{TP}{P} = \frac{TP}{FN+TP}$
  • F1-score = $2\frac{PRE X REC}{PRE + REC}$ (조화평균)

ROC curve란?

Untitled 1Untitled 2

TPR이 1에 가까울 수록, FPR이 0에 가까울 수록 좋은 성능을 가진다는 것을 기반으로 한 머신러닝 모델의 성능 평가 방법이다. 따라서 그래프의 아래 면적 즉 AUC의 넓이가 넓을 수록 모델의 성능이 좋다는 것을 의미한다.

데이터 분석 및 전처리

  1. 데이터 분석 과정
    1. 데이터 크기
    2. 데이터의 개수
    3. 각 리뷰의 문자 길이 분포
    4. 많이 사용된 단어
    5. 긍정, 부정 데이터의 분포
    6. 각 리뷰의 단어 개수 분포
    7. 특수문자 및 대문자, 소문자 비율
  2. 전처리 과정
    • 단어 최대 길이 설정 → Padding을 추가하여 길이 맞추기
    • 벡더 표상화 → embedding 과정
      • Tokenizer
      • Counter Vertorize
      • TF-IDF
      • W2V
  3. Untitled 3

TF-IDF

(Term Frequency - Inverse Document Frequency)

문장의 중요도 및 검색을 하기 위해 단어들의 가중치를 정하는 방법이다.

TF-IDF는 모든 문서에서 자주 등장하는 단어는 중요도가 낮다고 판단하며, 특정 문서에서만 자주 등장하는 단어는 중요도가 높다고 판단한다. TF-IDF 값이 낮으면 중요도가 낮은 것이며, TF-IDF 값이 크면 중요도가 큰 것입니다.

  • tf(d,t) : 특정 문서 d에서의 특정 단어 t의 등장 횟수.
  • df(t) : 특정 단어 t가 등장한 문서의 수.
  • idf(d, t) : df(t)에 반비례하는 수.(df(t)에 반비례)총 문서의 수 n이 커질 수록, IDF의 값은 기하급수적으로 커지기 때문에 log를 사용한다. 또한 log를 씌워주지 않으면, 희귀 단어들에 엄청난 가중치가 부여될 수 있습니다.
  • $idf(d,t) = log(\frac{n}{1+df(t)})$
  • scikit-learn에서 TF-IDF 사용할 수 있다.
    참고 - 계산과정 Untitled 4Untitled 5Untitled 6

Scikit-learn

오픈소스 머신러닝 라이브러리

  • 간단한 실행 순서
  • Dataset (train, test) 분할 → 적절한 모델 선택 → train data로 fit(학습) → test data로 predict(추론)
  • 이번 실습에서 2가지 모델 사용
    • Logistic regression
    • RandomForest

실습 과정

  • 라이브러리 설치
  • numpy, pandas, scikit-learn, matplotlib, seaborn, bs4, nltk, wordcloud, bs4, html5lib
  • 데이터 분석 & 데이터 전처리 과정 진행
  • 학습하기 위한 단어 벡터 표현 방법 별 데이터 처리
    • Tokenizer
    • (25000, 1416) → 가장 긴 데이터가 1416개의 단어
    • CounterVertorize
    • (25000, 5000), analyzer='word'
    • TF-IDF
    • (25000, 20000), analyzer='word' ngram_range=(1, 3) min_df=0→ 총 단어는 약 4백만게 이지만 20000개의 feaure를 사용할 때 가장 좋은성능이 나옴
    • Word2Vec
    • (25000, 300), vector_size=300
  • scikit-learn을 활용하여 모델을 사용하여 학습과 추론
    • Logistic Regression
    • RandomForest
  • 각각의 데이터에 2가지 모델을 적용하여 성능 평가
  • 결론 시각화
    Untitled
반응형

'AI > Kaggle' 카테고리의 다른 글

Walmart Recruiting - Store Sales Forecasting  (1) 2021.07.08
반응형

Syntax

통사론은 구문론은 단어가 문장을 이루는 방법을 연구하는 언어학의 하위 분야이다. 

1. Syntax Rules

  • 올바른 구문 또는 문장을 생성하는 규칙
    • word + syntactic rule + word = phrase
    • phrase + syntactic rule + phrase = sentence
      (예시)영어는 SVO 어순
      • The President nominated a new Supreme Court justice (o)
      • President The new Supreme a Court justice nominated (x)
      (예시)한국어는 SOV 어순으로 구성되어있다.
      • 대통령은 새 대법관을 지명했다.(o)
      • 새 대법관을 대통령은 지명했다. (o)
      • 대통령은 지명했다 새 대법관을 (의미는 해석 가능, 문법적은 x)
      • 새 지명했다 대법관을 대통령은 (x)
  • 어순이 다를 경우 완전히 다른 의미가 될 수 있다.
    예시
      - I mean what i say vs I say what i mean
      - 나는 망원경을  들고 있는 남자를 보았다 vs 망원경을 들고 있는 나는 남자를 보았다.
  • 구문 규칙은 문법적 관계를 결정해준다
    예시
      - Your dog chased my cat vs. My cat chased your dog.
      - 네 강아지가 내 고양이를 쫒아왔다. vs 내 고양이가 네 강아지를 쫒아왔다.
    💡 한국어는 어순보다 조사에 의해 문법적 관계의 영향이 더 크다 → 한국어의 어순이 다른 언어에 비해 자유로운 이유
  • 문장의 동사에따라서 문장 성분의 제약이 있다
  • 단어의 그룹과 계급을 정해준다
    예시
      - The captain ordered the old men and women off the ship(2가지 해석 가능, 상황에 따라 결정)\
      → 1. The captain ordered the [old [men and women]] off the ship.\
      → 2. The captain ordered the [old men] and [women] off the ship.

2. 문법이 전제로 하고있지 않은 것

  • 문법은 이전에 나왔던 문장에 기초하지 않는다
  • 문법은 의미에 기초하지 않는다
  • 문법은 진실성에 기초하지 않는다
    예시
      - Enormous crickets in pink socks danced at the prom.
      - Colorless green ideas sleep furiously
  • 문법은 틀리지만 의미해석이 가능한 문장있다.

3. 문장의 구조

"The child found the puppy"같은 간단한 문장도 컴퓨터는 1차원적으로 해석하기 때문에 문장의 의미를 이해하지 못한다

  • 단지 Det-N-V-Det-N 처럼 한줄의 단어 나열로 알고있다
  • 문장에서 의미가 있게 분할이 필요하다
  • Untitled

Constituents(구성 요소) and Constituency Tests

  • Constituents는 문장안에서의 자연스러운 그룹화 하는 것이다
    • 예시. [[the] [child]] [[found] [[a] [puppy]]
  • 구성 요소로 묶는 방법
    • 혼자 사용이 가능한가
      • a puppy는 가능, found a는 불가능
    • 대명사로 대체 가능한가
      • → “I found him in the park.” (a puppy)
        → “I found him in the park and Bill did too.” (found a puppy)
    • 한개의 unit으로 이동이 가능한가
      • The child found a puppy → A puppy was found by the child.

4. Syntactic Categories(구문 범주)

  • 문범적 오류 없이 대체로 표현이 가능한 것(명사구(NP), 동사구(VP)...)
    예시
      - NP(Noun + Phrase) : A bird, The woman who was laughing, It, John $\cdots$
      - VP(Verb + Phrase) : ate the cake, slept $\cdots$
  • Phrasal Categories(구 범주)
    • NP (명사구): men, the man, the man with a telescope
    • VP (동사구): sees, always sees, rarely sees the man, often sees the man with a, telescope, know who you are, slept on the bed
    • PP (전치사구): over, nearly over, over the hill
    • AdjP (형용사구): happy, very happy, very happy about winning
    • AdvP (부사구): brightly, more brightly, more brightly than the Sun
  • Lecial categories(어휘 범주) - 내용어
    • Noun (명사): puppy, girl, soup, happiness, pillow
    • Verb (동사): find, run, sleep, realize, see, want
    • Preposition (전치사): up, down, across, into, from, with
    • Adjective (형용사): red, big, candid, lucky, large
    • Adverb (부사): again, carefully, luckily, very, fairly
  • Functional Categories(기능 범주) - 기능어
    • Auxiliary (조동사): verbs such as have, and be, and modals such as may, can, will, shall, must
    • Determiners (한정사): the, a, this, that, those, each, every
  • 품사
    • 영어
    • Noun, Pronuon, Verb, Adjective, Adverb, Interjection, Preposition, Conjunction
    • 한국어
    • 명사, 대명사, 동사, 형용사, 부사, 감탄사, 조사, 수사, 관형사
  • 참고 (penn treebank tagset)
    Untitled 1
    • stanford parser, NLTK → 문장성분을 분류하는 라이브러리
  • penn treebank tagset : 영어에서 자연어처리에서 많이 사용되는 품사

5. Phrase Structure Trees

Selection

  • 문장이 잘 형성되려면, PS 규칙의 구조 조건에 부합해야 하며 각 구절의 머리부분의 Syntactic(C-selection) 및 semantic(S-selection) 요건도 준수해야 한다.
  • 특정 head는 특정 형식의 구성요소를 필요로 하거나 필요로 하지 않는다.(C-selection)
    예시
      - The verb `find` requires an `NP`: Alex found the ball.
      - The verb `put` requires both an `NP` and a `PP`: Alex put the ball in the toy box.
      - The verb `sleep` cannot take a complement: Alex slept.
      - The noun `belief` optionally selects a `PP`: the belief in freedom of speech.
      - The `adjective proud` optionally selects a `PP`: proud of herself
  • 동사는 의미적으로도 구성요소를 선택한다(S-selection) 문법적으로는 맞지만 의미적으로는 부적함
    예시
      - The beer murdered the lamp (맥주가 램프를 죽였다)
      murder은 사람에 해당하므로 위 문장은 어색하다
      - The beer drank the lamp
      `drink`의 경우 주체가 마시는 행위를 할 수있는 동물이 와야한다

Phrase Structure Rules

  • 요즘은 dependency로 하는 것이다 PS는 예전 방법
  • 구조가 단순하고 명료한 장점이 있다
  • Examples of the PS rules
    • S -> NP VP
    • NP -> Det N
    • VP -> V NP
    • VP -> V
    • VP -> V PP
    • VP -> V CP
    • PP -> P NP
    • CP -> C S
  • Infinity of Language: Recursive Rule
    • 문장을 무한한 구성요소로 생성할 수 있다
    • Untitled 2

Structural Ambiguities

구조적 모호성

  • 한문장이 2가지 의미를 갖는 경우
    • The boy saw the man with the telescope.
      → The boy used the telescope to see the man
      → The boy saw the man who had a telescope.
      Untitled 4
    • Untitled 3

6. Dependency grammer

PS rule보다 현재 더 많이 사용되는 방식

  • Phrase structure grammer vs Dependency grammer
    • PS 문법의 단점은 구조적으로 복잡하다는 단점이 있다.
    • Dependency 문법은 PS 문법보다 단순하다
    • PS는 어순이 매우 중요하지만 Dependency 문법에서는 어순에 매우 자유롭다 - 일상생활에서는 어순이 틀리는 경우가 매우 많다
  • Untitled 5
  • 단어(head)와의 의존관계에 따라 문장 구조가 결정된다.
    • Governor(지배소) - 화살표 보내는 단어
    • Dependent(의존소) - 화살표 받는 단어
  • Untitled 6

 

Reference

위 글은 데이터 청년캠퍼스 장지원 교수님의 강의를 기반으로 작성되었습니다.
반응형

'AI > 자연어처리(NLP)' 카테고리의 다른 글

응용 언어학 - 영어(Morphology)  (1) 2021.07.05
응용 언어학 - 영어(Semantics)  (2) 2021.07.05
반응형

응용 언어학 - 영어(Morphology)

1. The Words of Language

  • 언어에서 단어(words)는 매우 중요하다.
  • 모든 단어들의 mental dictionary를 가지고 있다.
    • Mental dictionary 구성 요소
      • Pronunciation
      • Meaning
      • Orthography(spelling)
      • Grammatical category
      Content Words and Function Words
    • Content words
      • 내용의 의미를 가지고 있는 단어
      • 계속해서 새롭게 생겨날 수 있다.(Open class)
        예시

        nouns, verbs, adjectives, etc.

    • Function words
      • 기능적 의미를 가지고 있는 단어
      • 아주 가끔 발생 가능하지만 거의 고정되어 있다(Close class)
         
        예시

        articles, prepositions, conjunctions, etc.

2. Morphemes

  • Morphology(형태론) : 단어의 형성의 규칙에 대한 학문
  • Morpheme(형태소) : 의미를 가지고있는 최소 단위
    • 형태소는 그 자체로 단어가 된다.
    • 형태소끼리 결합하여 새로운 단어를 만들 수 있다.

Bound and Free Morphemes

  • Free morphemes
    • 혼자 사용이 가능하다
    • ex) books에서 book
  • Bound morphemes
    • 혼자서 사용이 불가능하고, 다름 morphemes에 붙어서 사용이 가능하다
    • ex) boos에서 s, undo에서 un
    • prefixes vs suffixes
      • 영어에서는 거의 99.9%가 prefixes와 suffixes로 이루어져 있다
    • Infixes
      • fikas "strong"이라는 뜻 → fumikas "to be strong"라는 뜻
    • circumfixes
      • chokma "he is good"이라는 뜻 → ikchokmo "he is not good"이라는 뜻

Roots and Stems

  • Roots(어근) : morpheme의 기반?
    • ex) um-love-able 에서 love가 root
  • stems(어간) :
    • ex) um-loveable 에서 loveable가 stem

Rule of word formation

  • Derivational morphemes
    • 의미 또는 품사가 달라지는 형태소
    • ex)
      • un- → undo 의미가 바뀜
      • -ish → boyish 의미와 품사가 모두 바뀜
  • Inflectional morphemes
    • 문법적 기능을 하는 morphemes (의미나 품사를 바꾸는 역할 x), 항상 단어의 마지막에 위치
    • ex) -s, -ed, -ing, -en, -s, -'s, -er $\cdots$

Hierarchical Structure of Words

  • Morphemes는 정해진 단어 구조로 만들어진다.
  • unsystematic = un- + system + -atic
  • Untitled
  • 단어의 계층 구조는 애매한 단어를 명확하게 해줄 수 있다.
  • ex. unlockable"not able to be locked" 잠글 수 없는"able to be unlocked" 여는것이 가능한
  • Untitled 2
  • Untitled 1

Rule productivity

  • Derivational affixes는 단어를 매우 많이 만들 수 있다.
  • 예외가 있다
    • know의 과거는 knowed가 아닌 knew
    • 보통 자주 사용되는 단어가 불규칙이 많다(많이 사용하기 때문에 인지할 것이라서), 어려운 단어일 수록 규칙을 활용한다.
    • 차이가 없는 경우도 있다(hit-hit-hit)
    • 명사로부터 의미가 파생된 동사도 있다. ring : 반지 → 반지를 끼다

3. Other Morphological Processes

  • 사람들의 언어 능력은 엄청나게 생산적이다. 신조어가 아주 많다.

Back-formations

  • 잘못된 형태소 분석으로 만들어진 단어
  • editor → edit (사람을 나타낼 때 -er, -or을 붙인다, 그래서 editor의 -or을 빼고 편집이라는 단어를 만들었다, 즉 editor가 만들어지고 edit이 생겨났다)
  • television → televise (-tion, -sion은 명사를 만들때 사용된다. 따라서 televise는 television의 동사형이라고 생각해서 "방송을 내보내다"라는 뜻의 단어가 생겨났다)

Acronym

  • 첫번째 글자를 가지고 만든 단어
    예시
      - NASA(National Aeronautics and Space Agency)
      - UCLA(university of California, Los Angeles)
      - 별다줄
      - ㅈㄱㄴ
      - ㅇㅈ

Abbreviation/Clipping

  • 일부분만 사용하거나 축약하여 사용하는 단어
    예시
      - Fax(facsimile)
      - Gym(gymnasium)
      - Ad(advertisement)
      - Bike(bicycle)
      - Math(mathematics)
      - gas(gasoline)
      - dis(disrespect)

Eponym

  • 특정 인물의 이름을 사용하여 만든 단어
    예시
      - denim(de Nemes)
      - argyle(argyli in Scotland)
      - paparazzi(Signor Paparazzo)
      - Murphy's Law(captain Ed Murphy)
      - guy(Guy Fawkes)

Blends

  • 두 단어를 합쳐서 만든 단어(각 단어의 일부를 결합)
    예시
      - smog(smoke + fog)
      - urinalysis(urine + analysis)
      - brunch(breakfast + lunch)
      - saladent(salaryman + student)
      - bromance(brother + romance)
      - 어른이(어른 + 어린이)
      - 턱스크(턱 + 마스크)

Compounds

  • 두 단어를 합쳐서 새로운 의미의 단어를 생성
    예시
      - greenhouse → 온실
      - Whitehouse → 백악관
      - Blackboard → 칠판

Idioms

  • 새로운 의미를 갖는 관용어구
  • 한번에 의미를 유추하기 어렵고 언어의 문화를 알아야 한다
  • 다양한 종류
    1. 모양 고정 붙어있음 (hot potato)
    2. 모양 고정 떨어짐 (take a rest)
    3. 모양 변화
    4. 모양 변화 떨어짐 (took a rest)
    5. 모양 변화 어순 (ice breaking)
      예시
       
    • A hot potato → 최근 화제가되는 이슈
    • Piece of cake → 누워서 떡먹이의 뜻
    • Once in a blue moon
    • 숟가락을 올리다
    • 가뭄에 콩 나다
    • 삼천포로 빠지다

Multi-token words

  • 여러개의 토큰으로 이루어진 단어
  • Idioms, 숙어의 상위 개념
    예시
    • New York
    • Rock 'n' roll

Morphology를 할때 해야할 작업

1. Sentence splitting

  • 문장을 분류해야 한다
    예시
      Three years after its artificial-intelligence engine Watson made its
      high-profile win on Jeopardy!, IBM is adapting the technology as it
      seeks practical commercial uses, an IBM executive explained
      yesterday at EmTech, a conference organized by MIT Technology
      Review. Rhodin said IBM is refining Watson to make it more adept at
      providing the correct answer to a specific question in a specific
      domain? For example, by learning from previous queries. IBM has
      also been working with USAA, a company that provides financial
      services to U.S. military personnel. Mr. Sherwood said reaction to
      Sea Containers' proposal has been "very positive." In New York Stock
      Exchange composite trading yesterday, Sea Containers closed at
      $62.625, up 62.5 cents. "I said, 'what're you? Crazy?' "said
      Sadowsky. IL-33 is known to induce the production of Th2-associated
      cytokines (e.g. IL-5 and IL-13).
    
      - 빨간색은 어려운 예시
          - Jeopardy!의 경우 tv 프로그램 이름으로 고유 명사이다
          - MIT Technology Review 의 경우 하나의 의미를 가진다
          - `.`(마침표)가 있다고 문장의 끝이 아니다!

2. Word tokenization

  • 한국어 영어의 경우 띄어쓰기를 기준으로 할 수 있다.
  • 중국어, 일본어의 경우 띄어쓰기가 없어 어려움이 있다.
  • Tokenization issue
    • 같은 형태의축약형, 문맥에따라 다른 의미 갖는다
      예시
        - Mary's → Mary's / Mary is / Mary has
    • Hyphens
      예시
        Calcium-dependent
      
        Hsp-60
    • Word-internal punctuation
      예시
        - M.p.h
        - Ph.D.
        - 01/02/06
        - Google.com
        - 555,500.50$
    • Multi-token words
      예시
        - New York
        - Rock 'n' roll
  • 다른 issue
    • 레반슈타인 거리 알고리즘 (해결 방법의 일부)
    • 오탈자
    • 고의로 틀리게 쓰는 경우
      • 한국인만 읽을 수 있는 한글 앖녒핪셊욦
      • 기여워 끼여워 끼욥 귀욥 귀여워 $\cdots$

3. Morphological analysis

형태소 분석

Untitled 3

Reference

위 글은 데이터 청년캠퍼스 장지원 교수님의 강의를 기반으로 작성되었습니다.

반응형

'AI > 자연어처리(NLP)' 카테고리의 다른 글

응용 언어학 - 영어(Syntax)  (1) 2021.07.05
응용 언어학 - 영어(Semantics)  (2) 2021.07.05

+ Recent posts