본문 바로가기

전체 글100

원-핫 인코딩(One-Hot Encoding) 이란? 원-핫 인코딩(One-Hot Encoding)이란? 컴퓨터가 이해하기 쉽도록 자연어 처리를 위한 하나의 기법인 원핫 인코딩은 단어들의 크기를 벡터의 차원으로하고 표현하고 싶은 단어의 인덱스에 1을 부여하고, 다른 인데스에 0을 부여하여 단어를 벡터로 표현하는 방식(원-핫 벡터)이다. 원핫인코딩은 간단한 방법이지만 단어들 간 유사도도 구하기 어렵다(무조건 0이나온다) 라는 단점이 있다. 때문에 단어간 유사도를 구할 때에는 코사인 유사도를 사용한다. 또한 표현해야할 단어의 개수가 늘어날 수록, 벡터를 저장하기 위해 필요한 공간이 늘어난다(차원이 증가한다)라는 단점이 있기에 저장 공간 측면에서는 굉장이 비효율적이다. 때문에 word2vec을 이용한다. 아래의 예시를 보고 이해하자 2022. 5. 6.
자연어 처리(Natural Language Processing)와 토큰화(tokenization)란? 자연어(NLP: Natural Language Processing)란? 자연어는 사람들이 일상적으로 사용하는 언어(자연어)와 인공적으로 만들어진 인공어와 구분하여 부르기 위한 개념이다. 자연어를 통해선 다양한 일을 할 수 있는데 분류, 추론, 독해, 질의 응답, 품사 태깅, 개체명 인식..등이 있다 이러한 용어들을 자연어 이해(Natural Language Understanding)라고 하며 자연어 이해를 통해 만들어진 결과물을 자연어 생성(Natural Language Generation)이라 한다. 자연어 처리에서 크롤링 등으로 얻어낸 데이터가 필요에 맞지않게 전처리가 안된 상태라면 데이터를 사용하고자 하는 용도에 맞춰 토큰화, 정제화, 정규화 작업이 필요하다. 간단한 용어 몇 가지들을 정리해보자 말.. 2022. 5. 4.
도함수란 기울기란? 도함수란? 도함수는 기울기와 같은 의미이다. 기울기는 도함수의 개념을 쉽게 말한 개념이라고 생각하면 된다고 한다. 미분의 의미란 특정 지점에서의 기울기이다. 기울기를 좀 더 명확히 정의하자면 삼각형의 높이를 밑변으로 나눈 값이다. 아래 예시를 들어 이해를 해보도록 하자. a가 만약 2라고 가정한다면 f(a)=3a이니 f(a)=6이 된다. 그렇다면 a의 값을 살짝 밀어 a가 2.001이라고 해보자. 이제는 f(a)는 세배를 곱한 6.003이 되게 된다. 즉 f(a)는 0.003이 증가하게 된다 a는 오른쪽으로 0.001을 올린 것에 비해 위로는 3배가 늘어난다는 의미는 f(a)=3a 함수에서 기울기,도함수는 3이라는 것이다. 이는 a가 어떤 값일 때도 f(a)의 기울기가 3이기 때문에 이렇게 표현을 할 .. 2022. 5. 3.
케라스 이해하기 케라스를 사용하면서 딥러닝을 설계 해야한다면, 설계도는 하나의 모델이라고 표현된다고 한다. 모델은 퍼셉트론, 목표함수, 옵티마이저로 구성되어지며 과제의 예로 들면 아래와 같다. model = Sequential([ Dense(64, activation='sigmoid', input_dim=32), # A, B Dense(128, activation='sigmoid'), # C Dense(5, activation='softmax') # D ]) 위 예시에서 Sequential은 케라스에서 제공하는 모델 중에 하나이며 순차적인 레이어를 쌓기 위해 사용하는 모델이다. 코드의 2번째 줄에서 input_dim의 역할은 입력해야 할 뉴런의 수를 설정하는 것이고, activation의 역할은 활성화 함수를 설정하는 .. 2022. 5. 2.
파이썬에서 자연대수e를 사용하는 방법 numpy.exp() 시그모이드 함수를 구현하기 위하여 지수함수를 써야하는데 이 때 numpy에서 제공하는 numpy.exp()를 이용하여 지수함수를 사용할 수 있다. import numpy as np print(np.exp(0)) # e^0 와 동일 결과값 : 1.0 print(np.exp(1)) # e^1 와 동일 결과값 : 2.718~ print(np.exp(4.5)) # e^4.5 와 동일 결과값 : 90.01~ print(np.exp([0, 1])) # [e^0, e^1] 와 동일 결과값 : [1,2.718~] 위의 예시가 자연대수를 이용하는 방법이고 원래 목적인 시그모이드 함수를 표현하기 위해선 아래와 같다. def sigmoid(x): return 1 / (1 + np.exp(-x)) 2022. 5. 2.
경사하강법(Gradient Descent)이란? 경사하강법(Gradient Descent)이란 무엇일까? 신경망의 학습을 위해선 손실을 줄여나가야 하는데 이때 손실함수 J가 함수의 미분값을 계산하고 있을때 기울기가 완만해질수 있도록 (즉 경사가 낮아지는) 가중치를 변경하는 방법이다. 간단하게 말해 함수의 기울기를 이용하여 함수 값이 낮아지는 방향으로 독립 변수의 값을 변형시켜가면서 최종적으로 최소 함수 값을 갖도록 하는 독립 변수의 값을 찾는 방법이다. 좋은 예시로 시야가 안보일때 산에서 내려오기 위하여 산의 기울기를 더듬으며 가장 아래로 갈 수 있는 방향을 찾는 방법이 예시이다. 산에서 내려가기 위해 오르막길을 선택하지는 않을 것이기 때문이다. *gradient를 한글로 번역하면 기울기이다. 왜, 언제 경사하강법을 사용할까? 함수의 최솟값을 찾기 위.. 2022. 4. 29.
신경망이 학습되어지는 메커니즘(순전파,역전파,경사하강법)이란? 신경망의 학습은 어떻게 이루어지는 걸까? 데이터가 입력이 되어지면 신경망의 각 층에서 가중치와 활성화 함수 연산을 반복적으로 수행한다.(*순전파) 위에 계산된 과정들을 반복한 후 출력 층에서 계산되어진 값을 출력한다. 손실 함수를 사용하여 예측값과 실제값의 차이를 계산한다. *경사하강법과 *역전파를 통해서 각 가중치를 갱신한다 위 과정을 원하는 값이 나올 때 까지 반복한다. *순전파(Forward Propagation)란? 뉴럴 모델에서 입력층부터 은닉층, 출력층까지 순서대로 변수들을 계산하고 값을 내보내는 과정을 의미한다. *손실 함수란(Loss function)? 신경망은 손실 함수를 최소화 하는 방향으로 가중치를 갱신하는데 입력 데이터를 신경망에 넣어 순전파를 거쳐 출력층을 통과 한 값이 도출이 되.. 2022. 4. 29.
인공 신경망(Artificial Neural Networks)이란? 인공 신경망(ANN: Artificial Neural Networks)이란 입력층(input layer) 데이터 셋이 입력되는 층이며 입력되는 데이터셋의 특성에 때라 입력층의 노드의 개수가 결정된다. 은닉층(hidden layer) 입력층으로부터 입력된 신호가 가중치, 편향과 연산이 되어지는 층을 의미한다. 계산의 결과를 사용자가 볼 수 없기에 이름이 은닉층으로 불리우며 데이터 셋의 특성 수와 상관없이 노드 수를 구성할 수 있다. 출력층(output layer) 은닉층의 연산을 마친 값이 출력되어지는 층이다. 이진분류,다중분류,회귀 분류 등으로 구성되어진다. 2022. 4. 27.
정치 관련 홍보 전화 차단 방법 대선이 끝났는데도 매일같이 02 로 시작하는 정치 관련 전화가 온다 서울시장인지 뭔지.. 전화 좀 그만했으면.. 내 번호.. 그만 팔려.. skt -> 티월드 접속, 번호제공에서선거 관련 여론 조사 목적의 휴대폰 번호 제공 메뉴에서 거부 등록버튼 kt -> 080-999-1390 전화해서 거부 신청 lg -> 080 -855 -0016 전화해서 거부신청 2022. 4. 27.