DataScience (9) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Natural Language Processing with Deep Learning] 01. Intro & Word Vectors ๋ณธ ํฌ์คํ ์ ์คํ ํฌ๋ Christopher Manning ๊ต์๋์ [Stanford CS224N: Natural Language Processing with Deep Learning]์์ ์ ๋ฐํ์ผ๋ก ์ ์๋์์ต๋๋ค. ์ด์ธ์๋ ์ถ๊ฐ ์ค๋ช ์ด ํ์ํ ๊ฐ๋ ๋ฑ ์ฐธ๊ณ ํ ์๋ฃ๋ ๋งํฌ์ ์ถ์ฒ๋ฅผ ๋จ๊ฒจ๋์์ต๋๋ค. ๊ฐ์ ์์ : https://www.youtube.com/watch?feature=shared&v=rmVRLeJRkl4 ๊ฐ์ ์๋ฃ : https://web.stanford.edu/class/cs224n/slides/ ๊ฐ์ 2023๋ ์ ๊ฐํํ openAI์ ChatGPT๋ฅผ ์ด์ด ๊ตฌ๊ธ์ Bard, ๋ง์ดํฌ๋ก์ํํธ์ Bing์ด ์ฐ๋ฌ์ ์ถ์๋๋ฉฐ ์จ ์ฌํ๊ฐ ์์ฑํ AI ๊ธฐ๋ฐ ์ธ์ด ๋ชจ๋ธ์ ์ฃผ๋ชฉํ๊ณ ์๋ค. ์์ฐ์ค๋ฝ๊ฒ NLP(N.. Multivariable linear regression ์ง๋ ์๊ฐ๊น์ง Linear regression์์ input variable์ ๊ฐ์๊ฐ ํ๋์ผ ๋์ Hypothesis, Cost ํจ์, Gradient descent algorithm๊น์ง ๋ค๋ฃจ์ด๋ดค๋ค. ์ฌ์ค ํ์ค ์ธ๊ณ์์ ๋ณ์ ํ๋๋ก ์ข ์ ๋ณ์๋ฅผ ์์ธกํ๋ ๊ฒฝ์ฐ๋ ๋ง์ง ์๋ค. ์ฃผ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ณ์๋ฅผ ํตํด ์ข ์ ๋ณ์๋ฅผ ์์ธกํด๋ด๊ณค ํ๋ค. Multivariable Linear Regression Input variable์ด ์ฌ๋ฌ ๊ฐ๊ฐ ๋ ๋, ์ฐ๋ฆฌ๋ ๊ฐ์ค์ ๋ฐ๊พธ์ด์ฃผ์ด์ผ ํ๋ค. ์ด ๊ฒฝ์ฐ, ์ฐ๋ฆฌ๋ ์์์ ๊ฐ๊ฒฐํ๊ฒ ํํํ๊ธฐ ์ํด ํ๋ ฌ (matrix) ๋ฅผ ์ฌ์ฉํ๋ค. x1 x2 x3 Y 73 80 75 152 93 88 93 185 89 91 90 180 96 98 100 196 73 66 70 142 ์ด๋ฌํ x1, x2.. Linear Regression Cost Function & Gradient Descent Algorithm Linear Regression ์ ๊ด์ฌ ์ง๋ ์๊ฐ์ ์์๋ดค๋ Linear Regression ์ Cost ํจ์๋ ๋ค์๊ณผ ๊ฐ๋ค. ์ฐ๋ฆฌ์ ๊ด์ฌ์ , ์ฐ๋ฆฌ๊ฐ ์กฐ์ ๊ฐ๋ฅํ W ๊ฐ(x ์ ๊ธฐ์ธ๊ธฐ)๊ณผ b ๊ฐ(y ์ ํธ)์ ์กฐ์ ํ์ฌ Cost ํจ์ ๊ฐ์ด ๊ฐ์ฅ ์ ๊ฒ ๋์ค๋ ๋ชจ๋ธ์ ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค. Gradient Descent Algorithm ์ฐ์ ์ง๋ ๋ฒ ์์๋ก ์ดํด๋ณด์๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ X Y 1 1 2 2 3 3 ๋ํ ๊ฐ์ค ํจ์ H(x) = Wx ๋ผ๊ณ ํ๋ฉด, (b ๊ฐ์ 0์ด๋ผ๊ณ ํ์) ๋ค์๊ณผ ๊ฐ์ Cost ํจ์๊ฐ ํํ๋๋ค. ์ด ํจ์(Cost ํจ์)์ ๋ชจํ์ ๊ทธ๋ ค๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. W ๊ฐ์ ๋ฐ๋ผ Cost ํจ์๊ฐ์ด ๋ฌ๋ผ์ง๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. W๊ฐ 0์ผ ๋๋ Cost ๊ฐ์ด 0.4667์ด๊ณ , 1๋ก ๊ฐ์๋ก ์ ์ ์ค์ด๋ค.. Tensorflow Linear Regression Implementation Linear Regression์ ์๋ฆฌ์ ๋ํด ๊ฐ๋ณ๊ฒ ์์๋ดค์ผ๋, tensorflow๋ฅผ ํตํด ๊ฐ๋จํ Linear Regression์ ๊ตฌํํด๋ณด๊ณ ์ ํ๋ค. ์ง๋ ๋ฒ์ ์ฌ์ฉํ๋ ๊ฐ์ ์ฌ์ฉํ๊ณ ์ ํ๋ค. import tensorflow as tf x_train = [1,2,3] #ํ์ตํ x๊ฐ y_train = [1,2,3] #ํ์ตํ y๊ฐ #Tensorflow ๊ฐ ์ฌ์ฉํ๋ Variable : Tensorflow๊ฐ ์์ฒด์ ์ผ๋ก ๋ณํ์ํค๋ ๋ณ์ _ ํ์ตํ๋ ๊ณผ์ ์์ ๋ณ๊ฒฝ์ํด W = tf.Variable(tf.random.normal([1]), name = 'weight') # Weight #๊ฐ์ด ํ๋์ธ array๋ฅผ ์ฃผ๊ฒ ๋จ b = tf.Variable(tf.random.normal([1]), name = 'bias').. Linear Regression Linear Regression ๊ธฐ์ด Linear Regression์ ์ฐ์์ ์ธ ๋ฐ์ดํฐ์ ์ถ์ด๋ฅผ ๋ฐํ์ผ๋ก ๋ ์ด๋ธ(๊ฒฐ๊ณผ๊ฐ)์ ์์ธกํ๋ Supervised Learning ์ ์ผ์ข ์ด๋ค. ๋ง์ฝ ๋ค์๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์๋ค๊ณ ํ ๋, X Y 1 1 2 2 3 3 ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ 2์ฐจ์ ์์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด ์ ์๋ค. ์ฐ๋ฆฌ๊ฐ ํ๊ณ ์ ํ๋ ์์ ์ ์์ ์ ์ค์ ์ด๋ค ์ ์ด ๊ฐ์ฅ Data์ ์ถ์ด๋ฅผ ์ ์ค๋ช ํ๋์ง ๊ฐ์ค์ ์ธ์ฐ๊ณ ์ ํํ๋ ๊ฒ์ด๋ค. ์ฆ, ์ฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๋จผ์ ํ ์ผ์ Hypothesis (๊ฐ์ค)์ ์ธ์ฐ๋ ์์ ์ด๋ค. ๊ทธ ๊ฐ์ค์ "Linear ํ Model์ด ์ฐ๋ฆฌ์ Data์ ๋ง์ ๊ฒ์ด๋ค. " ๋ ๊ฐ์ค์ด๋ค. ์ฐ๋ฆฌ๋ ์ด์ ๋ถํฐ Linearํ ์ ์ ์ฐพ๋ ์์ ์ ๋ค์ด๊ฐ๋ค. ์์ ์๋ ๊ทธ๋ํ ๊ทธ๋ฆผ์์ ๊ทธ๋ ค์ง ์ ๋ค์ ๊ฐ๊ฐ์ด .. Tensorflow ๊ธฐ๋ณธ Operation Tensorflow์ ๊ธฐ๋ณธ์ ์ธ Operation์ ๋ํด ์์๋ณด์๋ค. Tensorflow๋ data flow graphs๋ฅผ ์ฌ์ฉํด numerical ํ ๊ณ์ฐ์ ํ๋ Library์ด๋ค. Edge ์ ๋์๋ค๋๋ Data๋ค์ Tense๋ผ๊ณ ํ๋๋ฐ, ๊ทธ๋ค์ ๋์๋ค๋, ์ฆ ํ๋ฆ์ Flow๋ผ๊ณ ํ๊ณ , ๊ทธ๊ณณ์์ ๋์จ ์ด๋ฆ์ด Tensorflow์ด๋ค. ๋ณธ๊ฒฉ์ ์ผ๋ก Tensorflow ์ฝ๋๋ฅผ ์คํํด๋ณด๋ ค๊ณ ํ๋๋ฐ, ๋ ๋ค์ ๋ฒ์ ์ด์ ์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. "AttributeError : module 'tensorflow' has no attribute 'Session'" tensorflow version 1๋ก ์์ฑ๋ ์ฝ๋์ด๊ธฐ ๋๋ฌธ์ Session ํจ์๋ฅผ ์ฌ์ฉํ๊ณ , version 2์์๋ถํฐ๋ Session์ด ์ ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ค.. Tensorflow in Pycharm ๊ทธ๋ฆฌ๊ณ Google Colab ์ธํฐํ๋ฆฌํฐ ํ์ฉ์ ์ํด Pycharm์ ์ค์นํ๋ค. Pycharm์ ๊ตฌ๊ธ์์ Pycharm ์ ๊ฒ์ํ ํ, ๋ฌด๋ฃ ๋ฒ์ ์ ์ค์นํ๋ฉด ๋๋ค. ์ค์น ํ , Create Project๋ฅผ ํ๋ฉด, ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ค์ ํ๋ ๋ถ๋ถ์ด ๋์ค๋๋ฐ, Conda ์ ์ค์น๋์ด ์๋ Python tensorflow ๋ฒ์ ์ผ๋ก ์ค์ ํด์ฃผ๋ฉด ๋๋ค. Project ๋ฅผ ๋ง๋ค๊ณ , 'File -> New -> Python File' ์ ์ ๋ ฅํด์ ์๋ก์ด ํ์ผ์ ๋ง๋ ํ, tensorflow ๊ฐ ์ ์คํ๋๋์ง ํ์ธํด๋ณด์๋ค. prompt์์ ์ ๋ ฅํ๋ ๋ด์ฉ์ ๋๊ฐ์ด ์ ๋ ฅํด๋ณด์๋๋ฐ, import tensorflow as tf node1 = tf.constant(3.0, dtype = tf.float32) node2 = tf.constant(5.0) tf.pri.. Tensorflow ์ ๋จธ์ ๋ฌ๋ ๋จธ์ ๋ฌ๋์ด๋ ? ๋จธ์ ๋ฌ๋์ ์ผ์ข ์ Software์ด๋ค. ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ท์น์ ์ผ์ผํ ์ฝ๋๋ก ์์ฑํ์ง ์์๋, ๋ฐ์ดํฐ ์์์ ๊ท์น์ ์ฐพ์๋ด๊ณ , ์๊ณ ๋ฆฌ์ฆ์ ์ปดํจํฐ๊ฐ ๋ง๋ค์ด ๋ธ๋ค. ์ฆ ์ปดํจํฐ๊ฐ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ํ์ต์ ํ๋ ๊ฒ์ด๋ค. ๋จธ์ ๋ฌ๋์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋ถ๋ฅํ ์ ์๋๋ฐ, ํ์ตํด์ผ ํ๋ ๋ฐ์ดํฐ๊ฐ ์ ํด์ง๊ณ , ๋ ์ด๋ธ (๊ฒฐ๊ณผ๊ฐ)์ด ์๋ ๋ฐ์ดํฐ๋ก ํ์ตํ๋ Supervised Learning (์ง๋ํ์ต) ๊ณผ ๋ ์ด๋ธ์ด ์๊ณ ์ปดํจํฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ์ค์ค๋ก ํ์ตํด์ผ ํ๋ Unsupervised Learning(๋น์ง๋ํ์ต)์ด ์๋ค. ๊ทธ ์ค์ ์ฐ์ ์ง๋ํ์ต์ ๋ํด์ ์์๋ณด๊ณ ์ ํ๋ค. ์ง๋ํ์ต์ ์์์ ์ธ๊ธํ๋ฏ์ด ๊ฒฐ๊ณผ๊ฐ์ด๋ผ ํ ์ ์๋ ๋ ์ด๋ธ์ด ์ ํด์ ธ์๋ค. ์๋ฅผ ๋ค์ด, ์ฌ๋์ ํค๋ฅผ ์์ธกํ๋ค๋ฉด 0๋ถํฐ 2m ๋ฑ ์ฐ์์ ์ธ ์ซ์๋ฅผ.. ์ด์ 1 2 ๋ค์