Professional Documents
Culture Documents
1) https://wikidocs.net/53560
2) https://wikidocs.net/57805
3) https://wikidocs.net/59427
Text preprocessing for NLP (복습)
Text Preprocessing (복습)
Tokenization
['His', 'barber', 'kept', 'his', 'word', '.',
[‘His barber kept his word. But keeping 'But', 'keeping', 'such', 'a', 'huge',
such a huge secret to himself was 'secret', 'to', 'himself', 'was', 'driving',
driving him crazy.’] 'him', 'crazy', '.',]
Text Preprocessing (복습)
Build vocabulary
['His', 'barber', 'kept', 'his', 'word', '.',
'But', 'keeping', 'such', 'a', 'huge',
'secret', 'to', 'himself', 'was', 'driving',
'him', 'crazy', '.',]
Text Preprocessing (복습)
his, barber,
kept, word, but, a,
keeping, such, ., huge,
secret, to, himself
was, driving, him,
crazy
Text Preprocessing (복습)
현재 단어 집합의 크기는?
Text Preprocessing (복습)
Integer Encoding
새로운 문장이 입력. {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[‘his', 'barber', 'kept', ‘a', ‘secret', ‘.’] ‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17}
Text Preprocessing (복습)
Integer Encoding
새로운 문장이 입력. {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[‘his', 'barber', 'kept', ‘a', ‘secret', ‘.’] ‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17}
Integer Encoding
여러 문장에 대해서는? {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', 'barber', 'kept', ‘a', ‘secret', ‘.’], ‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17}
Integer Encoding
여러 문장에 대해서는? {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', 'barber', 'kept', ‘a', ‘secret', ‘.’], ‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17}
Out-Of-Vocabulary Problem
모르는 단어가 섞여있으면? {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’], ‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17}
Text Preprocessing (복습)
Out-Of-Vocabulary Problem
모르는 단어가 섞여있으면? {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’], ‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17}
Out-Of-Vocabulary Problem
모르는 단어가 섞여있으면? {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18}
Out-Of-Vocabulary Problem
모르는 단어가 섞여있으면? {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18}
현재 단어 집합의 크기는?
Text Preprocessing (복습)
Out-Of-Vocabulary Problem
모르는 단어가 섞여있으면? {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18}
Integer Encoding
여러 문장에 대해서는? {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18}
Integer Encoding
여러 문장에 대해서는? {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18}
Padding
문장마다 길이는 다를 수 있다. {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18}
Padding
문장마다 길이는 다를 수 있다. {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18}
앞으로 문장의 길이를 동일하게 해주기 위해서는
특별한 토큰 ‘PAD’를 사용하도록 약속.
[[‘1', ‘18’, ‘3', ‘6', ‘11', ‘9’],
[‘6’, ‘2’, ‘14’, ‘15’]]
Text Preprocessing (복습)
Padding
문장마다 길이는 다를 수 있다. {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18, ‘pad’ : 0}
현재 단어 집합의 크기는?
[[‘1', ‘18’, ‘3', ‘6', ‘11', ‘9’],
[‘6’, ‘2’, ‘14’, ‘15’]]
Text Preprocessing (복습)
Padding
문장마다 길이는 다를 수 있다. {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18, ‘pad’ : 0}
Padding
문장마다 길이는 다를 수 있다. {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18, ‘pad’ : 0}
Padding
문장마다 길이는 다를 수 있다. {‘his’ : 1, ‘barber’ : 2, ‘kept’ : 3,
‘word’ : 4, ‘but’ : 5, ‘a’ : 6, ‘keeping’ : 7,
[[‘his', ‘teacher', 'kept', ‘a', ‘secret', ‘.’],
‘such’ : 8, ‘.’ : 9, ‘huge’ : 10, ‘secret’ : 11,
[‘a’, ‘barber’, ‘was’, ‘driving, ‘.’]]
‘to’ : 12, ‘himself’ : 13, ‘was’ : 14,
‘driving’ : 15, ‘him’ : 16, ‘crazy’ : 17
‘unk’ : 18, ‘pad’ : 0}
패딩 결과
[[‘1', ‘18’, ‘3', ‘6', ‘11', ‘9’], [[‘1', ‘18’, ‘3', ‘6', ‘11', ‘9’],
[‘6’, ‘2’, ‘14’, ‘15’, ‘0’, ‘0’]] [‘6’, ‘2’, ‘14’, ‘15’]]
Vectorization
Vectorization
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
Vectorization : One-Hot Encoding
• 원-핫 인코딩은 전체 단어 집합의 크기(중복은 카운트하지 않은 단어들의 집합)를 벡터의 차원으로 가진다.
• 각 단어에 고유한 정수 인덱스를 부여하고, 해당 인덱스의 원소는 1, 나머지 원소는 0을 가지는 벡터로 만든다.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
이 내용은 추후 상세히 다룰 예정
Vectorization
DTM TF-IDF
TF-IDF(Term Frequency-Inverse Document Frequency)
이를 통해 텍스트 분류 또한 가능.
TF-IDF(Term Frequency-Inverse Document Frequency)
이를 통해 텍스트 분류 또한 가능.
권장 실습 : https://wikidocs.net/24603
TF-IDF(Term Frequency-Inverse Document Frequency)
훈련 데이터
문서1 : 먹고 싶은 사과
문서2 : 먹고 싶은 바나나
문서3 : 길고 노란 바나나 바나나
문서4 : 저는 과일이 좋아요
TF-IDF(Term Frequency-Inverse Document Frequency)
No.
TF-IDF(Term Frequency-Inverse Document Frequency)
로그 사용 로그 미사용
TF-IDF(Term Frequency-Inverse Document Frequency)
• idf(d, t)에는 왜 log를 씌울까?
• log의 밑은 10을 사용한다고 가정하고, 단어의 df에 따른 idf값의 변화를 보자.
로그 사용 로그 미사용
IDF에 로그를 씌우는 이유
• tf(d,t) : 특정 문서 d에서의
특정 단어 t의 등장 횟수.
DTM
TF-IDF(Term Frequency-Inverse Document Frequency)
• tf(d,t) : 특정 문서 d에서의
특정 단어 t의 등장 횟수.
DTM
TF-IDF(Term Frequency-Inverse Document Frequency)
• tf(d,t) : 특정 문서 d에서의
특정 단어 t의 등장 횟수.
DTM
• tf(d,t) : 특정 문서 d에서의
특정 단어 t의 등장 횟수.
DTM
• tf(d,t) : 특정 문서 d에서의
특정 단어 t의 등장 횟수.
• tf(d,t) : 특정 문서 d에서의
특정 단어 t의 등장 횟수.
1) 문서 클러스터링
2) 유사한 문서 찾기
3) 문서 분류 문제
TF-IDF(Term Frequency-Inverse Document Frequency)
1) 문서 클러스터링
2) 유사한 문서 찾기
3) 문서 분류 문제
+
예를 들어 더하기를 만드는 프로그램은
a라는 변수와 b라는 변수가 왔을 때
두 개를 더해 결론을 내는 프로그램을 만든다.
Machine Learning
+
예를 들어 더하기를 만드는 프로그램은
a라는 변수와 b라는 변수가 왔을 때
두 개를 더해 결론을 내는 프로그램을 만든다.
a+b
Machine Learning
+
7이 들어오고
Machine Learning
+
7이 들어오고 5가 들어오면
Machine Learning
+
7이 들어오고 5가 들어오면 12가 나온다.
12
Machine Learning
머신 러닝 방식
a b
머신 러닝은 블랙 박스 안에서
?
c
Machine Learning
머신 러닝 방식
a b
머신 러닝은 블랙 박스 안에서
? 무슨 일이 일어나는지 정확히
사람이 정의하기 어려운 경우 사용한다.
c
Machine Learning
머신 러닝 방식
2
?
Machine Learning
머신 러닝 방식
2 7
?
Machine Learning
머신 러닝 방식
2 7
?
9
Machine Learning
머신 러닝 방식
2 7 4
? ?
9
Machine Learning
머신 러닝 방식
2 7 4 8
? ?
9
Machine Learning
머신 러닝 방식
2 7 4 8
? ?
9 12
Machine Learning
머신 러닝 방식 이런 데이터들은 다수 존재하지만
2 7 4 8 1 5 11 17 4 19
? ? ? ? ?
9 12 6 28 23
12 5 5 7 0 5 21 18 95 1
? ? ? ? ?
17 12 5 39 96
Machine Learning
? ? ? ? ?
9 12 6 28 23
12 5 5 7 0 5 21 18 95 1
? ? ? ? ?
17 12 5 39 96
Machine Learning
? ? ? ? ?
9 12 6 28 23
12 5 5 7 0 5 21 18 95 1
? ? ? ? ?
17 12 5 39 96
Machine Learning
?
Machine Learning
?
사람이 찾아서
기계한테 알려준다.
기존의 프로그래밍 방식
Machine Learning
?
사람이 찾아서 데이터를 많이주고
기계한테 알려준다. 기계가 찾게한다.
선형 회귀
Linear Regression
Machine Learning
hours score
2 25
3 50
4 42
5 61
Linear Regression
hours score
2 25
3 50
4 42
5 61
Linear Regression
hours score
2 25
3 50
4 42
5 61
Linear Regression
hours score
2 25
3 50
4 42
5 61
Linear Regression
https://en.wikipedia.org/wiki/Linear_regression
Linear Regression
𝒚 = 𝒘𝒙 + 𝒃
hours score
2 25
3 50
4 42
5 61
Linear Regression
• 𝑤와 𝑏의 값에 따라서 표현되는 직선이 달라진다.
𝑦 = 𝑤𝑥 + 𝑏
hours score
2 25
3 50
4 42
5 61
Linear Regression
• 𝑤와 𝑏의 값에 따라서 표현되는 직선이 달라진다.
• 선형 회귀는 결국 데이터를 적절히 반영하는 𝑤와 𝑏를 찾아내는 작업.
𝑦 = 𝑤𝑥 + 𝑏
hours score
2 25
3 50
4 42
5 61
Linear Regression
𝑦 = 𝑤𝑥 + 𝑏
hours score
2 25
3 50
4 42
5 61
Linear Regression
• 아래의 3개의 직선 중 데이터를 가장 잘 반영하는 직선은?
• 이를 수치적으로 표현하여 판단할 수 있어야 한다.
𝑦 = 𝑤𝑥 + 𝑏
hours score
2 25
3 50
4 42
5 61
Linear Regression
• 수치적으로 표현하여 판단할 수 있어야 한다.
• 이를 판단하기 위해서 오차(Error)라는 개념을 도입하자.
𝑦 = 𝑤𝑥 + 𝑏
𝑦 = 𝑤𝑥 + 𝑏
Linear Regression
• 우리의 목표는 오차를 최소로 만드는 𝑤와 𝑏를 찾아내는 것.
• 오차의 크기를 측정하는 가장 기본적인 방법은 모든 오차를 더하는 것.
𝑦 = 𝑤𝑥 + 𝑏
Linear Regression
• 우리의 목표는 오차를 최소로 만드는 𝑤와 𝑏를 찾아내는 것.
• 오차의 크기를 측정하는 가장 기본적인 방법은 모든 오차를 더하는 것.
𝑦 = 𝑤𝑥 + 𝑏
Linear Regression
• 우리의 목표는 오차를 최소로 만드는 𝑤와 𝑏를 찾아내는 것.
• 오차의 크기를 측정하는 가장 기본적인 방법은 모든 오차를 더하는 것.
𝑦 = 𝑤𝑥 + 𝑏
𝑦 = 𝑤𝑥 + 𝑏
이를 평균 제곱 오차라고 한다.
이 평균 제곱 오차가 최소가 되는
𝒘와 𝒃를 찾아내는 것이 목표다.
Cost Function
𝑐𝑜𝑠𝑡 𝑤, 𝑏 =
𝑐𝑜𝑠𝑡 𝑤, 𝑏 =
𝑤, 𝑏 → 𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑒 𝑐𝑜𝑠𝑡 𝑤, 𝑏
Mean Square Error
𝑐𝑜𝑠𝑡 𝑤, 𝑏 =
𝑤, 𝑏 → 𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑒 𝑐𝑜𝑠𝑡 𝑤, 𝑏
Cost function을 최소화하는 𝒘와 𝒃를 찾는 것이 목적.
Gradient Descent
경사하강법은
한 점에서의 순간 변화율 또는
접선에서의 기울기 개념을 사용한다.
Gradient Descent
이 구간에서의
접선의 기울기는 음수 이 구간에서의
접선의 기울기는 양수
비용 함수를 W에 대해 미분
= 접선에서의 기울기
Gradient Descent
𝑎
Learning rate (0~1 사이값)
Gradient Descent
𝒚 = 𝒘𝒙 + 𝒃
MSE =
MSE =
참고 : https://wikidocs.net/52460
실습 : https://colab.research.google.com/drive/1So-HXtG1guesq2hIGy72YkKb6Ob5gxDf?usp=sharing
Logistic Regression
Logistic Regression
두 개의 선택지 중에서 정답을 고르는 문제에 사용하는 모델.
Logistic Regression
두 개의 선택지 중에서 정답을 고르는 문제에 사용하는 모델.
스팸 메일 분류 or 합격, 불합격을 분류.
Logistic Regression
두 개의 선택지 중에서 정답을 고르는 문제에 사용하는 모델.
스팸 메일 분류 or 합격, 불합격을 분류.
합격을 1, 불합격을 0이라 하고 그래프로 표현하면 다음과 같다.
Logistic Regression
앞에서 배운대로 선을 그어서 이 점의 특성을 나타내는 직선을 그을 수는 없을까?
Logistic Regression
앞에서 배운대로 선을 그어서 이 점의 특성을 나타내는 직선을 그을 수는 없을까?
이 점들은 1과 0 사이의 값이 없으므로 직선으로 그리기 어렵다.
이를 반영한 S자 형태의 그래프가 필요하다.
Logistic Regression : Sigmoid function
앞에서 배운대로 선을 그어서 이 점의 특성을 나타내는 직선을 그을 수는 없을까?
이 점들은 1과 0 사이의 값이 없으므로 직선으로 그리기 어렵다.
이를 반영한 S자 형태의 그래프가 필요하다.
Logistic Regression : Sigmoid function
앞에서 배운대로 선을 그어서 이 점의 특성을 나타내는 직선을 그을 수는 없을까?
이 점들은 1과 0 사이의 값이 없으므로 직선으로 그리기 어렵다.
이를 반영한 S자 형태의 그래프가 필요하다.
Logistic Regression : Sigmoid function
시그모이드 함수는 입력값이 커지면 1에 수렴하고, 작으면 0에 수렴한다.
0부터의 1까지의 값을 가지는데 출력값이 0.5 이상이면 1(True),
0.5미만이면 0(False)로 만들면 이진 분류 문제로 사용할 수 있다.
Logistic Regression : Cost function
파란선 그래프
빨간선 그래프
0 1
Cross Entropy Function
파란선 그래프
빨간선 그래프
0 1
Linear Regression Vs. Logistic Regression
- 선형 회귀의 가설은 𝒚 = 𝒘𝒙 + 𝒃
- 로지스틱 회귀의 가설은 𝒚 = 𝒔𝒊𝒈𝒎𝒐𝒊𝒅 𝒘𝒙 + 𝒃
- 선형 회귀의 손실 함수는 Mean Squared Error
- 로지스틱 회귀의 손실 함수는 Cross-Entropy
- 선형 회귀는 회귀 문제에 푸는 알고리즘으로 예측값이 연속적인 값이다.
- 로지스틱 회귀는 이진 분류 문제에 푸는 알고리즘으로 예측값은 1 또는 0이다.
Linear Regression Vs. Logistic Regression
- 선형 회귀의 가설은 𝒚 = 𝒘𝒙 + 𝒃
- 로지스틱 회귀의 가설은 𝒚 = 𝒔𝒊𝒈𝒎𝒐𝒊𝒅 𝒘𝒙 + 𝒃
- 선형 회귀의 손실 함수는 Mean Squared Error
- 로지스틱 회귀의 손실 함수는 Cross-Entropy
- 선형 회귀는 회귀 문제에 푸는 알고리즘으로 예측값이 연속적인 값이다.
- 로지스틱 회귀는 이진 분류 문제에 푸는 알고리즘으로 예측값은 1 또는 0이다.
Softmax Regression은
각 클래스일 확률을 반환한다.
이 경우 𝑘=3 이므로
Softmax Regression
Softmax Regression
식 도출 : https://wikidocs.net/35476
Artificial Neural Network
• 소프트맥스 회귀 기본 구현 :
• https://colab.research.google.com/drive/1sq1atsdPNGtn3IjRXQCCPPbiufuSK
14_?usp=sharing
• 클래스를 이용한 구현 :
• https://colab.research.google.com/drive/1PQfxa0oNNiJTs0qGAMSJrrrvCpKC
pc5n?usp=sharing
신경망 이해하기
Neural Network 이해하기
× = →
+
Neural Network 이해하기
𝑥1
𝑦1
𝑥2
𝑦2
𝑥3
𝑤1 𝑤4
Sample #1 𝑥1 𝑥2 𝑥3 × 𝑤2 𝑤5 + 𝑏1 𝑏2 = 𝑦1 𝑦2
𝑤3 𝑤6
Neural Network 이해하기
𝑥1
𝑦1
𝑥2
𝑦2
𝑥3
𝑊
𝑋 𝑤1 𝑤4 𝐵 𝑌
Sample #1 𝑥1 𝑥2 𝑥3 × 𝑤2 𝑤5 + 𝑏1 𝑏2 = 𝑦1 𝑦2
𝑤3 𝑤6
Neural Network 이해하기
𝑥1
𝑦1
𝑥2
𝑦2
𝑥3
1
𝑤1 𝑤4
Sample #1 𝑥1 𝑥2 𝑥3 × 𝑤2 𝑤5 + 𝑏1 𝑏2 = 𝑦1 𝑦2
𝑤3 𝑤6
Neural Network 이해하기
𝑥1
𝑦1
𝑥2
𝑦2
𝑥3
Sample #1 𝑥1 𝑥2 𝑥3 𝑦1 𝑦2
𝑤1 𝑤4
Sample #2 𝑥1 𝑥2 𝑥3 × 𝑤2 𝑤5 + 𝑦1 𝑦2
𝑏1 𝑏2 =
Sample #3 𝑥1 𝑥2 𝑥3 𝑦1 𝑦2
𝑤3 𝑤6
𝑥1 𝑥2 𝑥3 𝑦1 𝑦2
Sample #4
Neural Network 이해하기
𝑥1
𝑦1
𝑥2
𝑦2
𝑥3
𝑋 𝑊 𝐵 𝑌
Sample #1 𝑥1 𝑥2 𝑥3 𝑦1 𝑦2
𝑤1 𝑤4
Sample #2 𝑥1 𝑥2 𝑥3 × 𝑤2 𝑤5 + 𝑦1 𝑦2
𝑏1 𝑏2 =
Sample #3 𝑥1 𝑥2 𝑥3 𝑦1 𝑦2
𝑤3 𝑤6
𝑥1 𝑥2 𝑥3 𝑦1 𝑦2
Sample #4
Logistic Regression
× = →
+
Logistic Regression
× = → → Sigmoid( ) → 최종 예측값
+
Logistic Regression
× = → → Sigmoid( ) → 최종 예측값
+
이진 분류를 수행하는 신경망
× = → × = → → Sigmoid( )
+ +
이진 분류를 수행하는 신경망
× = → × = → → Sigmoid( )
+ +
이진 분류를 수행하는 신경망
× = → × = → → Sigmoid( )
+ +
Neural Network 이해하기
× = →
+
Neural Network 이해하기
× = → × = →
+ +
Neural Network 이해하기
× = → × = →
+ +
→
Softmax( )
Text Classification
Text Classification
텍스트 분류란 주어진 텍스트가 이미 정의된 카테고리 중 어디로 분류되어야 하는지를 예측하는 작업
자연어 처리 작업 중 가장 수요가 높으면서도 기본적인 작업
실제로 쓰이는 예제
• 언론사의 뉴스들을 자동으로 IT, 정치, 문화 등의 카테고리로 분류하는 뉴스 분류기
• 스팸 메일이나 문자를 자동으로 스팸으로 판단하는 스팸 분류기
• 뉴스 데이터로부터 어떤 종목 뉴스인지 판별하여 해당 종목 게시판으로 분류
• 사용자가 남긴 리뷰로부터 긍정인지 부정인지 감성 분류
• 챗봇은 사용자가 입력한 질의로부터 ‘환불’, ‘주문’, ‘건의’ 등인지 분류하고 이에 맞는 대응을 한다.
Text Classification
Predicted
Output
출력층의 활성화 함수
이진 분류라면 스칼라 값 또는 2차원 벡터값
(sigmoid) (softmax)
Predicted
Output
문서 1의 벡터
Vocabulary size
Text Classification using MLP
문서 1의 벡터
Vocabulary size
레이블
Text Classification using MLP
입력
vocab size
Text Classification using MLP
입력
vocab size
실습 : https://colab.research.google.com/drive/1HpetnJwbu7BQcH4TOLXODLlo2cg5qDRR?usp=sharing