ลองใช้ Tensorflow ทำ Linear Regression

Nonthakon Jitchiranant
1 min readApr 14, 2017

สวัสดีครับทุกท่าน บล็อกนี้ผมลองเขียนขึ้นมาเล่นๆดู เพราะว่าผมก็พึ่งเข้ามาเริ่มเล่นสาย Machine Learning ไม่นานนักปัญหาที่เจออย่างนึงคือ Tutorials ที่เป็นภาษาไทยมีค่อนข้างน้อยแล้วก็อ่านยากไปหน่อยสำหรับมือใหม่

เพราะฉะนั้น Tutorials ที่ผมเขียนจึงจะพยายามเขียนให้อ่านง่ายที่สุดครับ ซึ่งก็หวังว่ามันจะเป็นประโยชน์กับท่านผู้อ่านไม่มากก็น้อย

Tutorial นี้ผมจะเล่า (ขอใช้คำว่าเล่านะครับ) วิธีการทำ Linear Regression ใน Tensorflow

สำหรับใครที่ไม่รู้จัก Tensorflow มันเป็นไลบรารี่ตัวนึงของ Google ที่ใช้ทำ Neural Network Learning ครับ ซึ่งไอ้ Neural Network Learning คืออะไรถ้ามีใครสนใจเดี๋ยวผมจะอธิบายอย่างละเอียดเท่าที่ผมเข้าใจในบล็อกหน้าๆครับ

Linear Regression หรือพูดง่ายๆก็คือ การหาสมการเชิงเส้นที่ครอบคลุม Datasets ของเรามากที่สุด (มี x กับ y) ซึ่งจริงๆเราอาจจะไม่จำเป็นต้องใช้ tensorflow ก็ได้เพราะว่า tensorflow มันเปลืองพลังงานการประมวลผลพอตัว นึกภาพเหมือนเอาช้างไปจับตั๊กแตนยังไงยังงั้นเลย

แต่ว่าสำหรับมือใหม่ถ้าอยู่ๆจะให้ไปจับอะไรยากๆเลยก็คงลำบากครับเราเลยเริ่มแค่อันง่ายๆก่อนก็น่าจะพอ(ข้อดีอีกอย่างคือเราจะได้ตรวจสอบได้ด้วย)

ฉะนั้นไม่ให้เสียเวลาเรามาเริ่มกันเลยดีกว่า

Tutorial นี้ต้องการ numpy และ tensorflow ครับ สำหรับใครที่ไม่เคยลงไว้ก็ลงง่ายๆแค่ใช้คำสัง pip install numpy, pip install tensorflow (รองรับแค่ 64 bit)

โค้ดจาก https://www.tensorflow.org/get_started/get_started

ข้างบนคือโค้ดที่ใช้ครับผมอธิบายไปตาม comment แล้วแต่ถ้าใครสงสัยตรงไหนก็ถามได้ครับ

รูปนี่เป็นผลตอนที่รันโค้ดดูแล้ว จะได้ว่า W(ความชัน) = -0.9999969 b ได้เป็น 0.99999082 และ loss = 5.69997 * 10^-11 (ถ้าใครไม่มีข้างบนไม่ต้องตกใจครับ เพราะผมใช้ CUDA เลยมีผลบอกว่าใช้การ์ดจออะไรประมวลผล)

เนื่องจากว่า datasets ของเราเอาจุดมาจาก y = -x + 1 จึงพูดได้เลยครับว่ามันใกล้เคียงมากๆ

สำหรับ tutorial นี้ก็จบเพียงเท่านี้ครับ ถ้าใครมีคำถามอะไรสงสัยสามารถถามได้นะครับ code ที่ผมใช้พร้อมคอมเม้นท์อยู่ในนี้ครับ https://pastebin.com/WmZcRg8k

ขอบคุณทุกๆท่านที่เข้ามาอ่านนะครับ เจอกันใหม่คราวหน้าครับ :D

--

--