분류 전체보기 102

자연어처리 입문

자연어는 우리가 일상생활에서 사용하는 언어들이라고 정의내리고 있다. 그리고 자연어’처리’란 자연어의 의미를 분석해 컴퓨터로 다양한 문제를 해결하는 것이라고 정의가 내려지고 있다. 이때 어떤 문제를 해결하고 있냐?라고 물으면 자연어처리의 응용분야를 같이 살펴보면 된다. 자연어 처리 테스크는 이것보다 훨씬 더 많지만 간단히만 살펴보자면, 1) 텍스트 분류, 2) 감성분석 ,3) 내용요약, 4) 기계번역, 5) 질의응답 등이 있다. 먼저 텍스트분류는 특정 문장이나 문서에서 어떠한 카테고리로 분류하는 문제를 다룬다. 감성분석은 텍스트에서 어떤 주제에 대한 주관적인 인상, 감정, 개인의 의견을 추출하는 문제를 다룬다. 내용 요약은 문서에서 중요하다고 생각되는 문장을 요약하는 방법이나, 요약문을 새롭게 생성하는 방..

06. 옵티마이저 (optimizer)

옵티마이저 (optimizer) 경사하강법 알고리즘에 변화를 살짝 추가해줄 수 있는 요소로 optimizer가 등장을 합니다. 1. 모멘텀 먼저 모멘텀은 경사 하강법에 관성을 더해주는 요소로, 계산된 접선의 기울기에 한 시점 전의(t-1) 접선의 기울기 값을 일정한 비율만큼 반영해주는 것이다. 만약 로컬 미니멈에 도달했을 때에 글로벌 미니멈으로 잘못 인식해 탈출하지 못하는 과정에서 모멘텀의 힘을 빌릴 수 있는 것이다. 2. 아다그라드 또 다른 optimizer로 아다그라드는 각 매개변수에 서로 다른 학습률 learning rate을 적용해주는 기능을 갖고 있다. 이때 갱신이 많이 된 매개변수에는 학습률을 작게 만들어 더 작게 변화하도록 만들고, 갱신이 조금 된 변수에는 학습률을 크게 만들어 더 크게 변화..

05. 경사 하강법

이제 결론적으로 우리가 앞에서 살펴봤던 loss function을 최소화해줘야한다. 이를 위해서는 우리는 가중치에 대해서 미분하는 과정을 거치게 된다. 경사 하강법 그래서 미분한 함수가 최소가 되는 지점, 다시 말해서 접선의 기울기가 0에 가까워지는 지점을 단계적으로 차근차근 밟아가는 경사하강법을 거친다. 이때 배치 크기에 따라서 경사하강법 방법도 달라지는데, 배치라는 건 매개변수 값을 조정하기 위해서 사용하는 데이터의 양을 말한다. 그래서 전체 데이터를 갖고 매개변수의 값 조정할지/ 아니면 정해준 일정한 양을 가지고 조정할지에 따라서 경사하강법의 방법은 달라진다. 아는사람은 이미 알겠지만 전체 데이터 쓰는 건 batch 경사 하강법, 사용자가 지정해주면 minibatch 하강법이다. 1. 배치 경사 하..

04. 신경망 학습 - loss function

학습은 훈련데이터로부터 우리의 매개변수의 최적값을 자동으로 획득하는 단계이다. 여기서 매개변수는 2개, 기울기와 편향이다. 이때 최적값은 실제값과 예측값이 가장 비슷한 지점에서 만들어지겠다. 다시 말하면 loss function을 최소화하는 방향으로 학습을 해야한다는 의미이다. 손실함수의 종류 그래서 loss function의 종류로는 먼저 MSE가 있다. 신경망이 추정한 출력값에서 실제 값과의 차이가 얼마나 되는지를 알려주는 함수고 연속형 변수 예측에 사용된다. 직접 함수로 정의하면 다음과 같이 작성할 수 있다. 보시는 것 처럼 compile() 메소드를 사용해서 학습 방식에 대한 환경설정을 이렇게 해주면 된다. Compile은 세 개의 인자를 입력으로 받는데 1) optimizer, 2) loss f..

03. 신경망 추론 - 활성화 함수, 출력층 함수

신경망 추론 활성화 함수(activation function) 추론은 마지막 출력층 값이 뭔지 알아내는 과정이다. 따라서 입력신호랑 가중치 곱하고 편향 더한 이 총합을 출력신호로 변환하는 함수가 필요하다. 그리고 우리는 이를 활성화 함수라고 부른다. 활성화함수 처리과정을 보시면, 가중치가 있는 입력 신호와 편향의 총합을 계산한 걸 a라고 뒀을때 이걸 활성화함수 h()에 넣어서 y값을 출력하는 일련의 과정을 거치고 있다. 활성화 함수의 종류 활성화함수의 종류로는 단층에서는 step function, 계단함수를 쓰고 다층에서는 시그모이드나 렐루같은 비선형 함수를 사용한다. 계단함수 : 0이 계속해서 나오다가 특정 임계값을 넘기면 1로 바뀌는 모습. 위 예시에서는 임계값을 0으로 설정해서 x가 0을 넘으면 1..

02. 인공신경망

인공신경망 신경망은 그림처럼 입력층, 은닉층, 출력층에 뉴런을 적절히 배치해준 형태이다. 신경망에서 수행하는 작업은 크게 두 단계로 나눌 수 있는데, 추론과 학습이다. - 추론은, 가중치와 뉴런의 값을 곱하고 그리고 뉴런 값에 영향을 받지 않는 이 편향도 같이 더해줌으로써 다음 뉴런의 값을 얻어내는 과정을 말한다. - 학습은 최적의 매개변수를 찾아가는 과정이다. (여기서 매개변수는 2개인데 하나는 가중치고 하나는 편향이다.) 이 두 매개변수는 신경망이 학습될 때 수시로 갱신되는 친구들이고, 이때 학습이 얼마나 잘됐는지 알아보는 척도로 loss function을 사용해준다.

01. 퍼셉트론

인공신경망에 대해서 간단히 개념을 짚어볼까한다. 우선 퍼셉트론부터 !! 퍼셉트론 신경망의 기본 단위는 뉴런이다. 이 하나의 뉴런에서 다수의 신호를 입력 받아 하나의 신호를 출력하는 알고리즘을 퍼셉트론이라고 한다. 이때 x1, x2가 입력신호로 들어가고 y가 출력 신호로 나온다. 그리고 w1,w2가 가중치가 되겠고 이들을 둘러싸고 있는 원을 뉴런 다른 말로 노드라고 표현한다. 퍼셉트론 작동 방식 퍼셉트론이 작동하는 방식은 일단 입력신호x1, x2가 뉴런에 보내질 때 각각의 고유한 가중치 w1, w2와 각각 곱해진다. 그래서 이 신호들의 총합이 정해진 임계치를 넘어설 때 1을 출력하고, 임계치보다 작거나 같을 때는 0을 출력하게 된다. 이렇게 신경망이 작동하는 걸 뉴런이 활성화된다라고도 말할 수 있다. 이때..

08-1. 정규화 : L2 정규화, Ridge regression

07. 과적합(Overfitting)과 정규화(Regularization) 07. 과적합(Overfitting)과 정규화(Regularization) ❕ 오버피팅을 조심하자 ❕ (feature 수가 너무 많아서와 같은 이유로) 모델이 복잡해 variance가 커진 것을 오버피팅 overfitting 이라고 부른다. 우리가 모.. uumini.tistory.com 앞서 오버피팅과 정규화의 원리에 대해 알아보았다. 이번엔 정규화 중 L2-norm 형식을 살펴보자. ❕ 정규화 (1) - L2 정규화 : Ridge regression ❕ L2 정규화는 "회귀 계수 β에 대한 제곱값"에 대한 제약조건을 취한 것이다. 그리고 이를 선형 회귀모델에 적용한 것이 Ridge regression이다. Ridge regre..

07. 과적합(Overfitting)과 정규화(Regularization)

07. 과적합(Overfitting)과 정규화(Regularization) ❕ 오버피팅을 조심하자 ❕ (feature 수가 너무 많아서와 같은 이유로) 모델이 복잡해 variance가 커진 것을 오버피팅 overfitting 이라고 부른다. 우리가 모델링을 할 때 가장 두려워하는 것이 바로 오버피팅일 것이다. train set에만 정확하고 최종적인 목표인 test set에서는 성능이 낮게 나오면 말짱도루묵이기 때문이다. 물론 train set에서 성능이 잘나오면 엄청나게 나쁜 모델이 탄생하진 않겠지만 그래도 우리의 목표는 test set에도 만족하는 일반화를 이루어내야한다는 점 !! 여기서 짚고 넘어가야 할 점은, 우리의 손실함수인 mse를 최소화하려고 할 때 bias와 variance 사이에 trade..

[?!] learning rate

[물음표/느낌표] 02. learning rate learning rate은 수렴 속도를 결정하는데, 만약 크다면 -> 수렴 속도가 빨라서 local minimum을 무시하고 지나칠 수 있지만, global minimum에 도달하지 못하고 계속 맴돌기만 해. 대신 작다면 -> 언젠가 global minimum에 도달할 순 있겠지만 local minimum에 빠질 위험이 있다. => 따라서 흔히는 , 초반에는 크게크게 가다가 조금조금씩 가도록 조절을 해준다. => 초반에는 학습률을 크게 설정해서 지역 최소값에 빠지지 않게 하고, 점진적으로 학습률을 줄여가면서 전역 최소값에 도달하게 하는 방법을 사용하기도 한다. (learning rate annealing)