<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Petchakrit Pinyopawasutthi on Medium]]></title>
        <description><![CDATA[Stories by Petchakrit Pinyopawasutthi on Medium]]></description>
        <link>https://medium.com/@petchakritskopinyopawasutthi?source=rss-2ead48431874------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*hD7NfriJVaH5vAAd</url>
            <title>Stories by Petchakrit Pinyopawasutthi on Medium</title>
            <link>https://medium.com/@petchakritskopinyopawasutthi?source=rss-2ead48431874------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 19 May 2026 19:13:37 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@petchakritskopinyopawasutthi/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Funny Acne Detection]]></title>
            <link>https://medium.com/super-ai-engineer/funny-acne-detection-53b65bddd0d1?source=rss-2ead48431874------2</link>
            <guid isPermaLink="false">https://medium.com/p/53b65bddd0d1</guid>
            <category><![CDATA[pangpuriyesuperai]]></category>
            <category><![CDATA[super-ai-engineer]]></category>
            <dc:creator><![CDATA[Petchakrit Pinyopawasutthi]]></dc:creator>
            <pubDate>Sat, 27 Mar 2021 04:14:30 GMT</pubDate>
            <atom:updated>2021-03-30T17:18:12.933Z</atom:updated>
            <content:encoded><![CDATA[<p>สวัสดีครับ บทความนี้เป็นส่วนหนึ่งของโครงการ Super AI Engineer ในรอบที่ 2 จัดโดยสมาคมปัญญาประดิษฐ์ประเทศไทย ผู้ที่ได้ผ่านเข้ามาในรอบ 2 นี้ ต้องเขียนบทความบน medium เพื่อแลกเปลี่ยนประสบการณ์ให้กับผู้อื่นๆ โดยกำหนดให้เลือกหัวข้อได้ตามที่ผู้เขียนอยากจะนำเสนอแบ่งเป็น 2 ประเภท คือ เกี่ยวกับ AI โดยตรงแต่ลงในรายละเอียดข้อมูลเชิงลึก และ เกี่ยวกับ AI สำหรับบุคคลทั่วไป</p><p>สำหรับการกลับมาในครั้งนี้เป็นบทความที่ 2 ที่จะเขียนข้อมูลในเชิงลึกมากขึ้น เนื่องด้วยส่วนตัวผมเองช่วงนี้ไม่มีเวลาเตรียมตัวมากนัก ครั้งนี้จึงอยากนำเสนอหัวข้อเรื่องที่เคยได้ทดลองทำมาก่อนหน้านี้จากประสบการณ์ในการหาความรู้กับ Training Course ของทาง Botnoi</p><p>ในงานนี้ได้รับโจทย์มาว่า</p><p><strong><em>ให้ทุกคนใช้ความรู้ทางด้าน ML แล้ว ทำโจทย์สักชิ้นหนึ่งออกมาเป็น API ที่ Deploy อยู่บน Heroku server แล้ว host บน </em></strong><a href="https://openapi.botnoi.ai/"><strong><em>https://openapi.botnoi.ai/</em></strong></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NmK0EH-rWAFzsy5Bj2A7UA.png" /><figcaption><a href="https://openapi.botnoi.ai/"><strong><em>https://openapi.botnoi.ai/</em></strong></a></figcaption></figure><h3>Start!!!</h3><h4>1. หาโจทย์</h4><p>เคยไหมครับ??? ทุกครั้งที่ตื่นเช้ามา ในวันที่มีนัดเจอเพื่อน, นำเสนองาน หรือเหตุการณ์สำคัญ สิ่งที่น่าหงุดหงิดใจที่สุดอย่างหนึ่งก็คือ สิวเจ้าปัญหามักจะมาในวันสำคัญเสมอ เมื่อพบปัญหายามเช้าแบบนี้ หลายคนก็คงมีวิธีจัดการที่แตกต่างกันไป บ้างก็อาจจะปล่อยผ่านไป แต่อีกหลายคนไม่สามารถมองข้ามมันได้ ลงมือบีบสิวด้วยตัวเอง ก่อให้เกิดเป็นรอยช้ำซึ่งอาจนำไปสู่การเป็นแผลเป็น/ Keloid ได้ในที่สุด</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/335/1*CGLrQZO2AeRhUMJq8oJNeA.png" /><figcaption>ref. <a href="https://www.sanook.com/women/81009/">https://www.sanook.com/women/81009/</a></figcaption></figure><p>นอกจากนี้ในแง่มุมของธุรกิจนั้น อย่างที่ทราบกันว่า พิษโควิด-19 ได้ทำให้หลาย ๆ ธุรกิจต้องตกอยู่ในภาวะชะงักงัน ไปจนถึงติดลบ แล้ว ‘ตลาดความงาม’ ที่ก่อนหน้านี้แม้ภาวะเศรษฐกิจจะชะลอตัวหรือตกต่ำก็ยังมีการเติบโต ภาพรวมจะเป็นอย่างไร ทาง ลอรีอัล(ประเทศไทย) จึงได้มาอัพเดททั้งมูลค่าตลาด , เทรนด์และความท้าทายของตลาดนี้ในยุคที่คนต้องสวยภายใต้หน้ากากให้ฟังดังรูปด้านล่าง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/0*NfXKCYz7PLyrXmh5" /><figcaption><a href="https://www.marketingoops.com/reports/industry-insight/value-and-trend-beauty-market-2020/">https://www.marketingoops.com/reports/industry-insight/value-and-trend-beauty-market-2020/</a></figcaption></figure><p>จะเห็นได้ว่า ผลิตภัณฑ์ดูแลผิวหน้ามาเป็นอับดับหนึ่งเลยทีเดียว แต่ปัญหาคือเมื่อเกิดสถานการณ์โควิด-19 ขึ้น ธุรกิจความงามทั้งหลายไม่สามารถเปิดกิจการตามปกติ ได้ ดังนั้นจะต้องเกิดการปรับตัวให้ทันสถานการณ์ เนื่องจากการดูแลตัวเองด้วยผลิตภัณฑ์เพื่อความงามและการดำเนินชีวิตประจำวันยังคงเป็นสิ่งจำเป็นที่มาคู่กันเสมอ ทางออกหนึ่งนั่นคือการดำเนินการด้วยกลยุทธ์ Beauty Tech เช่น</p><p>เปลี่ยนจากการแนะนำผลิตภัณฑ์ทางหน้าร้านให้เป็นการแนะนำสินค้าผ่านทางออนไลน์ต่าง ๆ เป็นต้น</p><p>จากที่กล่าวมาทั้งในแง่ประสบการณ์ของทางกลุ่มเราและในแง่ของสถานการณ์ปัจจุบันที่เกิดขึ้น มันจะดีแค่ไหน? หากเราสามารถวิเคราะห์เบื้องต้นได้ว่า สิวที่เกิดขึ้นนั้นเป็นสิวชนิดใด ต้องใช้ผลิตภัณฑ์ใดและมีวิธีรักษาที่ถูกต้องเป็นอย่างไรเพื่อลดการเกิดแผลเป็น/Keloid บนใบหน้าของเรา</p><p>เราจะเลือกสถานการณ์ในการวิเคราะห์สิวขึ้นมาเป็นตัวอย่าง เพื่อให้ผู้ใช้สามารถวิเคราะห์เบื้องต้นได้ว่าสิวที่เกิดขึ้นนั้นมีโอกาสเป็นแผลเป็นหรือที่เรียกว่า Keloid หรือไม่</p><h4>2. การ collect Data</h4><p>เราใช้วิธี Scrape data จาก website มาใช้ ในที่นี้ แบ่งเป็นสองส่วน</p><p><strong>2.1 Scrape data จาก </strong><a href="http://www.dermnet.com/dermatology-pictures-skin-disease-pictures/"><strong>http://www.dermnet.com/dermatology-pictures-skin-disease-pictures/</strong></a></p><p>โดยเลือกเฉพาะหัวข้อที่มีคำว่า Acne เข้ามา</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/743/1*7jUDo8AkvTdEFtKo5VPPFQ.png" /><figcaption><a href="http://www.dermnet.com/">http://www.dermnet.com/</a></figcaption></figure><p>หลักการที่นำมาก็คือ เข้าไปที่แต่ละหัวข้อที่มีคำว่า Acne แล้วดึงภาพทั้งหมดออกมา ดังภาพด้านล่างคือ Acne Cystic มีทั้งหมด 13 หน้า เราก็จะนำภาพทั้งหมดตั้งแต่หน้าที่ 1 ถึง 13 มาเป็น data set ของเรา</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/651/1*qa9lamFlMSDsqU9U2EKpTw.png" /></figure><p><strong>2.2 Scrape data จาก google โดยใช้ module scrape จาก package ของ botnoi</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/274/1*WECjO-zy-zZog2qapeMGYQ.png" /><figcaption>Package ของทาง botnoi</figcaption></figure><p>เป็น Package ที่ทางทีม Botnoi สร้างเอาไว้แล้ว เราสามารถนำมาใช้ได้เลย (เห็นไหมครับ บอกแล้วว่าถ้าคุณมาลงเรียน DataScienceEssential กับทาง Botnoi แล้วละก็ ง่ายสุดๆไปเลย !!!)</p><p>สำหรับวิธีใช้ เราแค่กำหนดคำที่เราต้องการ search ลงไป ในที่นี้ผมนำคำที่ใช้ Search มาจากข้อ 2.1</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/305/1*g9k-oUc3v3aWZwzTSSuoug.png" /></figure><p>Output : หลังจากที่ Scrape data มาจากทั้งสองส่วนแล้ว นำมารวมกัน output ที่ได้ของเราจะเป็น ลิ้ง url ของรูป ทั้งหมดที่นำมาใช้</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1011/1*DmJu4nCn2gubdPPGPCDCcQ.png" /><figcaption>ภาพประกอบตัวอย่าง all_srcs มาจาก data_srcs รวมกับ addon_srcs</figcaption></figure><h4>3. Model</h4><p><strong>3.1 Feature extraction</strong></p><p>แน่นอนว่าหลังจากที่เรามี Data set ในส่วนที่เป็น Image แล้ว เราจะดึง Feature เด่นๆ ของมันมาใช้ได้อย่างไร เช่น รูปหมา, แมว โดยปกติทั่วไปแล้ว ในการทำ classification ภาพจะมีกระบวนการที่เรียกว่า convolution เข้ามาใช้งานเพื่อช่วยสกัดเอา feature เด่นๆ ออกมา</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*JThofo106XCYVimYRZaJWQ.png" /><figcaption>Convolution Neural Network (<a href="https://www.aspexit.com/en/neural-network-lets-try-to-demystify-all-this-a-little-bit-3-application-to-images/">https://www.aspexit.com/en/neural-network-lets-try-to-demystify-all-this-a-little-bit-3-application-to-images/</a>)</figcaption></figure><p>ภาพข้างบนแสดงโครงสร้างของการใช้ convolution ร่วมกับ neural network จะประกอบไปด้วย Input layer นั่นก็คือ ภาพที่เรานำมาใช้เพื่อ train หรือ predict ในส่วนตรงกลางเรียกว่าเป็นส่วน Convolution and Pooling layers เป็นส่วนที่มีการสกัดเอา Features สำคัญๆ ของภาพออกมา ก่อนที่จะนำ Features สำคัญที่ได้ไปเข้าสู่ Output layer หรือ Multi-layer perceptrons ดังภาพ เพื่อ classify ภาพ</p><p><em>คำว่า Features ของภาพหมายความว่าอย่างไร</em></p><p>ก่อนอื่น ถ้าผมจะบอกว่าให้ ผู้อ่านทุกคนลองนึกภาพสุนัขขึ้นมาในหัวนะครับ จะมีอะไรเกิดขึ้นในหัวของเราบ้าง???</p><p>แน่นอนครับว่า แต่ละคนจะคิดลักษณะภายนอกของสุนัขแตกต่างกันไปขึ้นกับประสบการณ์การพบเจอสุนัขของแต่ละคน</p><p>แต่ลักษณะเด่นๆ ที่ผู้เขียนคิดว่า เกือบจะทุกคนต้องคิดไปในทิศทางเดียวกันแน่ๆ คือ สุนัขต้องประกอบด้วย ตา จมูก หู</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/734/1*MXB6nWW7jeYWoZRkaiuacA.png" /><figcaption><a href="https://byam.github.io/dlnd/2018/01/07/convolutional-networks.html">https://byam.github.io/dlnd/2018/01/07/convolutional-networks.html</a></figcaption></figure><p><em>เริ่มเห็นภาพกันรึยังครับ???</em></p><p>ถูกต้องแล้ว ตา จมูก หู เหล่านี้ คือลักษณะเด่นๆ หรือ Features ที่บ่งบอกถึงความเป็นสุนัขครับ</p><p>คราวนี้กลับมาที่โจทย์ของเราว่า เรามีี Data set ที่เป็นภาพสิว แน่นอนครับว่าเราก็จำเป็นต้องนำภาพเหล่านี้ไปผ่านกระบวนการ train ด้วย convolution neural network มากมาย เพื่อดึง feature ออกมา</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/196/1*NjPJwUl5NZ6aXJtriAOuHA.png" /><figcaption>Package ของทาง botnoi</figcaption></figure><p>ภาพด้านบนจะเป็นตัวอย่างการดึง feature มาจาก Resnet50 นะครับ แต่เนื่องจาก Project นี้เราจะทำเป็น API และ Deploy บน Heroku ซึ่งมีข้อจำกัดบางอย่าง ทำให้ตอนทำจริงเราจะเปลี่ยนไปใช้ mobilenet แทนครับ แต่วิธีใช้เหมือนกัน เพียงแค่เปลี่ยนจาก getresnet50() เป็น getmobilenet()</p><p><strong>3.2 Pre-processing</strong></p><p>หลังจากที่สกัด Feature ออกมาได้แล้ว เราจะนำไปเข้าสู่โมเดลเพื่อทำนายต่อไป แต่ก่อนอื่นเรามาลองใช้ความรู้จากวีคที่แล้วกันสักหน่อย ทำ Data Visualize สักเล็กน้อยเพื่อดูว่า Data set ที่เรานำมานั่นมีประเภทสิวแบบใดบ้าง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/391/1*f1Ty0mdWLwxsjRizgsDwmA.png" /><figcaption>Each type of Acne</figcaption></figure><p><em>ว้าวววว !!! แต่ละประเภท มีจำนวนค่อนข้างแตกต่างกันอยู่นะ แบบนี้จะมีผลต่อการทำ model ของเราไหมน้าาา????</em></p><p>Imbalanced data คือปัญหาที่แต่ละ category มีจำนวน data ไม่เท่ากันมากเกินไป ซึ่งอาจส่งผลได้ ทางกลุ่มเราจึงปรึกษากันและมองว่า เราอาจจะทำโจทย์ให้ง่ายขึ้นมากว่านี้หน่อยด้วยการ list ว่า สิวแต่ละประเภทเหล่านี้ มีชนิดใดบ้างที่สามารถเกิดเป็นรอยแผลเป็น/Keloid ได้ ทำให้โจทย์ของเราจะเปลี่ยนไปเป็น binary classification เท่านั้น โดยแบ่งเป็นกลุ่มที่สามารถเป็นรอยแผลเป็นได้/Keloid กับ กลุ่มที่ไม่มีโอกาสเกิดเป็นแผลเป็น/Non-Keloid</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/436/1*HqRpGLMd1BRcIlAJet_eaQ.png" /><figcaption>binary classification</figcaption></figure><p>เมื่อเสร็จขั้นตอน pre-processing กันแล้ว เราก็ไปสู่ขั้นตอน Build Model กันเถอะ</p><p><strong>3.3 Build Model</strong></p><p>ใน Project ครั้งนี้ ทีมของเราเลือกที่จะใช้ SVM มาใช้ในการแก้ปัญหา</p><p>โดยให้แบ่ง train set, test set เป็น 70%, 30% ตามลำดับ ก่อนที่จะเข้า Model ให้มีการทำ scaling data ด้วย StandardScaler()</p><p>ผลที่ได้</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/176/1*UyL2Ls3B9-zOOhXDrZvI0Q.png" /><figcaption>Accuracy from SVM</figcaption></figure><p>แน่นอนว่า ความแม่นยำอาจจะยังไม่สูงมากในระดับที่น่าพึงพอใจ แต่ถือเป็นอีกก้าวความสำเร็จหนึ่งอย่างยิ่งของเรา</p><p><strong>3.4 Predict</strong></p><p>ขั้นตอนการทำนาย เราจะรับ link url ของรูปภาพ เข้ามาเพื่อทำนายว่า ภาพสิวนั้นเป็น Keloid หรือ Non-Keloid</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/810/1*8CV3QLkF0U9T26Lltt1DtA.png" /><figcaption>ตัวอย่าง Predict ภาพ</figcaption></figure><h4>4. API, Deploy on Heroku, host บน openapi.botnoi</h4><p>หลังจากที่ทำเสร็จเรียบร้อยขั้นตอนต่อไปคือ เขียนเป็น API, Deploy on Heroku แล้วก็ Host บน openapi.botnoi</p><p>สำหรับขั้นตอนการเขียน API, และ Deploy นั้น สามารถอ่านเพิ่มเติมได้จาก medium ของ Dr. Winn Voravuthikunchai</p><p>ตามลิ้งด้านล่างเลยครับ</p><p><a href="https://medium.com/botnoi-classroom/%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-host-ai-api-%E0%B8%9A%E0%B8%99-heroku-%E0%B9%81%E0%B8%A5%E0%B8%B0-botnoi-openapi-8cf3b875a56">ตัวอย่างการสร้าง Host AI API บน Heroku และ BOTNOI OpenAPI</a></p><p>ผลลัพธ์ที่ได้ของเราตอนนี้</p><p>เพียงแค่เราคัดลอก url ของภาพที่ต้องการจะทำนายใส่ลงไปในช่อง <strong>พารามิเตอร์ </strong>ผลลัพธ์ก็จะแสดงออกมาดังภาพด้านล่าง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5nLO7iFqZGHICSw4rZPIkg.png" /><figcaption><a href="https://openapi.botnoi.ai/dashboard/api/sa-acne_predict">https://openapi.botnoi.ai/dashboard/api/sa-acne_predict</a></figcaption></figure><h4>5. สรุปผล การต่อยอดและพัฒนาในอนาคต</h4><ul><li>ในอนาคต ตัวแอพพลิเคชั่นสามารถทำการพัฒนาต่อยอดให้ครอบคลุมกับปัญหาสุขภาพผิวหน้าได้มากกว่าสิวและรอยแผลเป็น โดยปัจจุบัน แอพพลิเคชั่นยังสามารถวิเคราะห์ปัญหาได้เฉพาะส่วนเท่านั้น แต่ในอนาคตอาจพัฒนาไปเป็นการวิเคราะห์สภาพผิวทั้งใบหน้า โดยใช้การตรวจจับความผิดปกติบนใบหน้า (Object detection) และวิเคราะห์ปัญหาทั้งหมดบนใบหน้าได้พร้อมกัน เพื่อให้แอพพลิเคชั่นนี้สามารถทำการวิเคราะห์สภาพของผิวอื่นๆ ได้หลากหลายมากขึ้น เช่น เฉดสีผิว ฝ้า กระ ริ้วรอย รูขุมขน(ตัวแทนความชุ่มชื้นของผิวบนใบหน้า) ความมันวาวของผิว ความหย่อนคล้อยของผิว ผื่นแพ้ต่างๆ เป็นต้น ซึ่งจะสามารถทำให้วิเคราะห์สภาพผิวได้อย่างมีมิติมากขึ้น หากสามารถทำให้แอพพลิเคชั่นแม่นยำมากยิ่งขึ้น ก็จะเป็นประโยชน์ต่อการคัดกรองสภาพผิวที่มีปัญหาได้ดียิ่งขึ้น</li><li>เมื่อพัฒนาความแม่นยำของแอพพลิเคชั่นได้ดีแล้ว ก็จะสามารถนำไปใช้กับ profession healthcare staff ได้ เช่น เภสัชกร หรือ Beauty Assistance ซึ่งจะช่วยทำให้สามารถวิเคราะห์ จำแนกปัญหาสภาพผิว พยากรณ์ปัญหาที่จะเกิดขึ้นในอนาคตได้ เช่น จะเกิดแผลเป็นจากสิวประเภทที่มีปัญหาหา ถ้าไม่ทำการรักษาหรือใช้ผลิตภัณฑ์ให้เหมาะสม ดังนั้นจึงจะสามารถนำไปใช้ในร้านขายยา หรือ ร้านขายผลิตภัณฑ์บำรุงผิวต่างๆ เพื่อใช้วิเคราะห์และช่วยแนะนำผลิตภัณฑ์ที่เหมาะสม อย่างมีความเป็นมืออาชีพมากยิ่งขึ้น</li><li>เมื่อมีปริมาณ Data ที่มากเพียงพอ เช่น คนในประเทศใช้กันทุกคน ก็จะสามารถนำปัญหาสภาพผิวต่างๆ ที่ได้รับ ทำการรวบรวมข้อมูล และ นำข้อมูลไปเสนอขายให้กับบริษัทต่างๆ ในรูปแบบงานวิจัยได้ ซึ่งบริษัทเครื่องสำอาง /โรงงานรับผลิต ก็จะสามารถนำข้อมูลต่างๆ เหล่านี้ไปกำหนดทิศทางพัฒนาผลิตภัณฑ์เครื่องสำอาง ครีมบำรุงผิวต่างๆ ออกมาเป็นสินค้าใหม่ๆ ให้สอดคล้องกับปัญหาสภาพผิวที่ผู้ใช้เป็นอยู่ เรียกได้ว่าทำการผลิตสินค้าออกมาได้อย่างตรงใจผู้บริโภค โดยมีข้อมูลการวิจัยผู้บริโภคอยู่ในมือ โดยไม่ต้องเริ่มทำ Reserach ใหม่เพื่อหาความต้องการเบื้องต้นของผู้บริโภคตั้งแต่แรก</li><li>เมื่อมีปริมาณ user ผู้ใช้แอพพลิเคชั่นมากเพียงพอ จะเกิด economy of scale ได้ media ads ใหม่ โดยจะทำให้แอพพลิเคชั่นสามารถทำการรับโฆษณาผลิตภัณฑ์ในระบบแนะนำสินค้า เพื่อให้ผู้บริโภคมีทางเลือกในการตัดสินใจ โดยอาจจะรับโฆษณาในลักษณะของแบนเนอร์ภายในแอพลิเคชั่น หรือ product reccomended ซึ่งจะมีค่าโฆษณา แตกต่างกันออกไป ตามตำแหน่งที่แสดงผลการโฆษณาในแต่ละแอพพลิเคชั่นได้</li><li>ใช้ในทางการแพทย์ โดยใช้ในการช่วยตรวจวินิจฉัยและประเมินอาการ ซึ่งจะช่วยลดระยะเวลาในการเตรียมการรักษาได้</li></ul><p>และนี่คือตัวอย่างการทำ Acne Detection อย่างง่ายให้เพื่อนๆ สามารถไปลองเล่นกันได้นะครับ</p><p>Special Thanks : ขอบคุณทางทีมงาน Botnoi ทุกคน ที่ร่วมกันสร้าง Classroom นี้ขึ้นมา ถือเป็นการมอบโอกาสและประสบการณ์ที่ดีมากๆให้กับพวกเรา ขอบคุณครับ</p><p>สำหรับ source_code:</p><p><a href="https://colab.research.google.com/drive/1_vYovQ1s0MU_aueGckNGF-WQ5vBR7Rhv?usp=sharing">https://colab.research.google.com/drive/1_vYovQ1s0MU_aueGckNGF-WQ5vBR7Rhv?usp=sharing</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=53b65bddd0d1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/super-ai-engineer/funny-acne-detection-53b65bddd0d1">Funny Acne Detection</a> was originally published in <a href="https://medium.com/super-ai-engineer">Super AI Engineer</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[จบไม่ตรงสาย แต่อยากทำสาย AI ได้ไหมนะ]]></title>
            <link>https://medium.com/super-ai-engineer/%E0%B8%88%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%95%E0%B8%A3%E0%B8%87%E0%B8%AA%E0%B8%B2%E0%B8%A2-%E0%B9%81%E0%B8%95%E0%B9%88%E0%B8%AD%E0%B8%A2%E0%B8%B2%E0%B8%81%E0%B8%97%E0%B8%B3%E0%B8%AA%E0%B8%B2%E0%B8%A2-ai-%E0%B9%84%E0%B8%94%E0%B9%89%E0%B9%84%E0%B8%AB%E0%B8%A1%E0%B8%99%E0%B8%B0-3c649c69082?source=rss-2ead48431874------2</link>
            <guid isPermaLink="false">https://medium.com/p/3c649c69082</guid>
            <category><![CDATA[super-ai-engineer]]></category>
            <category><![CDATA[pangpuriyesuperai]]></category>
            <dc:creator><![CDATA[Petchakrit Pinyopawasutthi]]></dc:creator>
            <pubDate>Tue, 19 Jan 2021 08:55:16 GMT</pubDate>
            <atom:updated>2021-01-29T21:29:07.074Z</atom:updated>
            <content:encoded><![CDATA[<p>สวัสดีครับ บทความนี้เป็นส่วนหนึ่งของโครงการ Super AI Engineer ในรอบที่ 2 จัดโดยสมาคมปัญญาประดิษฐ์ประเทศไทย ผู้ที่ได้ผ่านเข้ามาในรอบ 2 นี้ ต้องเขียนบทความบน medium เพื่อแลกเปลี่ยนประสบการณ์ให้กับผู้อื่นๆ โดยกำหนดให้เลือกหัวข้อได้ตามที่ผู้เขียนอยากจะนำเสนอแบ่งเป็น 2 ประเภท คือ เกี่ยวกับ AI โดยตรงแต่ลงในรายละเอียดข้อมูลเชิงลึก และ เกี่ยวพกับ AI สำหรับบุคคลทั่วไป</p><p>ในเมื่อผู้เขียนมีสิทธิที่จะเลือกหัวข้อได้ หัวข้อแรกที่ผมอยากเขียนจึงเป็นส่วนของ AI สำหรับบุคคลทั่วไป เชื่อว่า หลายคนที่อยากทำงานสายนี้แต่ไม่ได้จบตรงสาย น่าจะมีความคิดแรกเหมือนกันว่า เราจะเริ่มตรงไหนดี ต้องรู้อะไรบ้าง แล้วไม่เคยเรียนสายนี้มาจะทำได้ไหม วันนี้ผมจะมาเล่าให้ฟังกันครับว่า จุดเริ่มต้นของตัวผมเองเป็นอย่างไร เพื่อที่อยากให้มันเป็นแรงบันดาลใจให้กับอีกหลายๆคนที่คิดอยากทำงานสายนี้ หรืออาจจะสายอื่นก็ตามแต่ยังไม่รู้ว่าจะเริ่มมันอย่างไร</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OzuwlGNhkq98tII-zx9qYw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7nykNYHeZ6OgNs6KUOZCJA.png" /></figure><h3><strong>จุดเริ่มต้น …</strong></h3><p>ขออนุญาตย้อนกลับไปเมื่อสมัยผู้เขียนยังเป็นเด็ก ผู้เขียนเองเคยเป็นเด็กคนหนึ่งที่สดใส สนุกสนานไปกับการเล่นกับเพื่อน เรียนบ้าง เล่นบ้าง ตามประสาเด็กธรรมดาๆ คนหนึ่ง แต่มีสิ่งหนึ่งที่ผู้เขียนเองชอบเป็นอย่างมาก นั่นคือ การเรียนวิชาคณิตศาสตร์</p><p>อ๊ะ อ๊ะ อ๊ะ !!! อย่างเพิ่งคิดว่าผมเก่งขนาดนั้นครับ ผมแค่ชอบคณิตศาสตร์ แต่นั่นไม่ได้แปลว่า ผมจะเก่งมันนะครับ</p><p>สิ่งที่ผมอยากจะบอกก็คือ พอผมชอบคณิตศาสตร์แล้วเนี่ย มันทำให้ผมมีความเชื่อครับว่า ทุกอย่างบนโลกนี้เนี่ย มีหลายอย่างที่สามารถอธิบายได้ด้วยตัวเลข (แต่อีกหลายอย่างก็ยังทำไม่ได้นะครับ :D)</p><p>อ่านมาจนถึงตอนนี้ ทุกคนอาจจะเริ่มสงสัยว่า หรือว่าจะทำสาย AI ได้ต้องชอบคณิตศาสตร์หรือเปล่า คำตอบคือ No No No!!! มีอีกหลายคนที่ไม่ได้ชอบคณิตศาสตร์ก็มาทำงานสายนี้ได้ครับ เพราะถึงแม้ว่าผมจะชอบคณิตศาสตร์ แต่ผมไม่ชอบการ Coding ครับ 555</p><p>อ้าว!!! นี่ผมจะสื่ออะไรกันแน่เนี่ย???</p><p>สิ่งที่ผมอยากจะบอกทุกคนก็คือ “<strong>Passion”</strong> ครับ ทุกวันนี้ผมก็ยังเป็นคนๆหนึ่งที่ไม่ได้เก่งอะไรครับ แต่ความเชื่อผมยังคงเหมือนเดิม</p><p>เขียนมาตั้งนาน ได้อะไรเนี่ย???</p><p>สิ่งที่ผมอยากจะบอกอย่างแรกก็คือ ขอให้ทุกคนมั่นคงในสิ่งที่ตัวเองกำลังทำอยู่ครับ</p><p>หากคุณอยากจะมาทำงานสายนี้จริงๆ เข้ามาเลยครับ อย่ามัวแต่กังวล หนักแน่นแล้วเดินหน้าอย่างมั่นคง</p><h3>หลังจากมี Passion แล้วยังไงต่อ…</h3><p>แน่นอนครับ มีแต่ความตั้งใจมันไม่เพียงพอสำหรับทุกๆงาน งานสาย AI ก็เช่นกัน</p><p>ต่อจากนี้จะเป็นการเล่าประวัติส่วนตัวของผู้เขียนสักหน่อยนะครับ เพื่อเป็นการแลกเปลี่ยนประสบการณ์กับผู้อ่านทั้งหลาย</p><p>ผมเองเรียนจบวิศวะไฟฟ้า สาขาควบคุม จุฬาลงกรณ์มหาวิทยาลัย มาครับ</p><p>เนื้อหาที่เรียนมา มีบางส่วนครับ (จริงๆ เรียกว่าน้อยดีกว่าครับ) ที่ตรงกับสาย AI</p><p>พอจบมา ตอนแรกก็ไม่รู้จะทำงานอะไรครับ จึงไปสมัครงานเป็น Data Engineer ให้กับบริษัทเอกชนแห่งหนึ่ง จริงๆแล้วอยากไปสมัครเป็น Data Scientist แหละครับ แต่ที่นั่นเขาไม่มีให้ เขาเลยเสนอให้เป็น Data Engineer ไปก่อน แล้วเดี๋ยวจะหาโอกาสย้ายตำแหน่งให้</p><p>ต้องบอกว่า ไม่ได้มีความรู้อะไรเลยนะครับ ทั้งด้าน Data Engineer หรือแม้แต่ Data Scientist ก็ตาม เรียกว่าความรู้แทบจะเป็น 0 เลย แต่สุดท้ายโชคดีมากครับ ที่เขารับเข้าไปทำงานและมอบโอกาสดีๆให้</p><p>ระหว่างที่ทำงาน ก็นั่งถามตัวเองตลอดครับ ว่า Data Scientist คืออะไร ต้องรู้อะไร</p><p>ไม่เคยตอบคำถามนี้กับตัวเองได้เลยครับ สุดท้ายจึงลองถามเพื่อนในบริษัทที่เป็น Data Scientist ถึงได้เข้ามารู้จักกับคำว่า Machine Learning และเมื่อศึกษาเพิ่มเติมอีกจึงได้เจอกับคำว่า Deep Learning ครับ</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*27xBbYVOrAKYWTaxCzb2nw.png" /></figure><p>แน่นอนครับ ตอนนี้รู้ Keyword แล้ว ผมก็ลุยเลยครับ หาคอร์ส Online ทั้งหลาย ไม่ว่าจะเป็น Coursera, DataCamp, Kaggle, Tensorflow, Pytorch เข้าร่วมอบรมคอร์ส AI ทั้งหลาย ที่มีการจัดทั้งในและนอกบริษัท</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yMMi5Xj6coAOCTayNpfr_w.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XO8wK5L2qZbpFSfUokH8Kw.png" /></figure><p>ถามว่าเอาเวลาที่ไหนไปหาความรู้พวกนี้ ???</p><p><strong><em>คำถาม</em></strong></p><p><em>ผมทำงาน 8.00–17.00 ครับ จะเอาเวลาที่ไหนไปศึกษา???</em></p><p><strong><em>คำตอบ</em></strong></p><p><em>ผมอ่านเพิ่มเติมตอน 22.00–24.00 ทุกวัน จันทร์-ศุกร์ และมีเวลาเสาร์ อาทิตย ์อีกอย่างน้อยวันละ 2–3 ชม.</em></p><p>ถูกแล้วครับ ผมทำอยู่อย่างนั้นเป็นระยะเวลา 1 ปีครึ่ง มีหลายคนมองว่าผมขยัน ขยันมาก ทำได้ยังไง จริงๆแล้วผมคงทำไม่ได้หรอกครับ ถ้าไม่มั่นคงกับสิ่งที่เชื่อจริงๆ ผมยังคงเชื่อครับว่า ตัวเลขสามารถอธิบายอะไรหลายๆอย่างได้ ซึ่งผมเองอยากนำความรู้ และความเชื่อส่วนนี้ไปพัฒนางานทางด้าน AI เพื่อพัฒนาสังคมให้มันดีขึ้น</p><h3>มีพื้นฐานบ้างแล้ว…</h3><p>ตอนนี้ผมพอมีพื้นฐานมาบ้างแล้ว แต่งานที่ทำอยู่ไม่มีส่วนไหนเกี่ยวกับ AI เลย จะทำอย่างไรดี???</p><p><strong>หางานที่ได้ทำสิครับ!!!</strong> คำตอบง่ายๆ แค่นี้เลย</p><p>ถ้าคุณไม่เริ่ม คุณจะไม่ได้ทำครับ</p><p><strong>ในกรณีของผม </strong>(จริงๆ ไม่แนะนำนะครับ แต่ส่วนตัวแล้วผมปรึกษากับทางบ้านเป็นที่เรียบร้อยแล้ว)</p><p>ก่อนหน้านี้ผมทำงานไปด้วย แล้วก็พยายามเข้าคอร์สอบรมเกี่ยวกับ AI ข้างนอกไปด้วย แต่ผมกลับรู้สึกไม่เพียงพอครับ อยากได้ประสบการณ์ที่มากกว่านี้ ผมจึงตัดสินใจลาออกครับ เพราะต้องการออกไปหาบริษัทที่ทำงานด้าน AI จริงๆ (ผมลาออก โดยที่ยังไม่ได้สมัครงานที่ใหม่นะครับ)</p><p>ตอนแรกอยากเรียนต่อ ป.โท หรือไม่ก็ ป.เอก ด้านนี้ไปเลย แต่อีกใจก็ยังไม่มั่นใจพอว่า เอ๊ะ!!! เราจะไปรอดจริงๆหรอ 555</p><p><strong>ช่างโชคดีอะไรเช่นนี้</strong></p><p>โครงการ Super AI Engineer เปิดรับสมัครรอบแรกพอดี ที่นี่แหละครับ เหมาะมากๆ ที่จะเป็นโครงการที่จะทำให้ผมได้พัฒนาตัวเองจริงๆ</p><p>ปัจจุบันตอนนี้ผมอยู่ในรอบ 2 ของโครงการ Super AI Engineer แล้ว แต่ก็ยังหรอกครับ ผมยังไม่ได้เก่งขนาดนั้น ที่นี่เต็มไปด้วยคนเก่งๆอีกมากมาย เปิดโลกใหม่ของผมมากครับ หลายๆครั้งความรู้ทางทฤษฎีก็แตกต่างกับความรู้จากการทำงานจริง ทักษะทางด้าน Coding ของผมก็ดีขึ้นบ้าง เนื่องจากได้พี่ๆน้องๆ คนอื่นๆ ในค่ายช่วยกันเยอะมาก ขณะเดียวกันตัวผมเองก็ได้แชร์ความรู้ที่ศึกษามาให้กับคนอื่นๆเช่นกัน อยากบอกว่าเป็น Community ที่ดีมากๆจริงๆครับ</p><p>สุดท้ายนี้ บทความที่เขียนมาซะยืดยาวนี้ ผมอยากให้มันเป็นกำลังใจให้กับทุกคนนะครับ ที่อยากจะทำงานสาย AI หรือ ทำงานข้ามสายก็ตาม</p><p><strong>“อย่ามัวแต่กังวลครับ ลงมือทำมันเดี๋ยวนี้ ทำมันด้วยใจรักและความเชื่อที่คุณมีต่อมัน”</strong></p><h3>อย่าหยุดพัฒนาตัวเอง…</h3><p>ข้างล่างนี่จะเป็นผลงานlส่วนหนึ่งทางด้าน AI บางส่วนที่ผมได้ทำทั้งตอนที่ทำงานอยู่และหลังจากที่ออกจากงานมาแล้ว (ไม่ได้มีเจตนาเพื่ออวดอ้างใดๆครับ แต่เพื่ออยากให้ทุกคนเห็นถึง Passion ที่ผมมีต่อมัน ถ้าคุณเองก็มี Passionและมั่นคง คุณก็สามารถทำได้ครับ)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_4-_A81NGgYFSjtgZ76qJw.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*d1yIb2Tj8pcfYSNNFx657Q.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J0YtN2elKRnAsINksBMuQA.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tGImwz_ObcY64V90Rind5w.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ta3f76ZIhkeCFA0NIbMJNA.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8JlRRd6RPRp6gt432qrvkQ.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TaxPgHeMqR8lhOu9lQ00-A.jpeg" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3c649c69082" width="1" height="1" alt=""><hr><p><a href="https://medium.com/super-ai-engineer/%E0%B8%88%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%95%E0%B8%A3%E0%B8%87%E0%B8%AA%E0%B8%B2%E0%B8%A2-%E0%B9%81%E0%B8%95%E0%B9%88%E0%B8%AD%E0%B8%A2%E0%B8%B2%E0%B8%81%E0%B8%97%E0%B8%B3%E0%B8%AA%E0%B8%B2%E0%B8%A2-ai-%E0%B9%84%E0%B8%94%E0%B9%89%E0%B9%84%E0%B8%AB%E0%B8%A1%E0%B8%99%E0%B8%B0-3c649c69082">จบไม่ตรงสาย แต่อยากทำสาย AI ได้ไหมนะ</a> was originally published in <a href="https://medium.com/super-ai-engineer">Super AI Engineer</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Botnoi Chatbot School : Conversation Flow]]></title>
            <link>https://medium.com/@petchakritskopinyopawasutthi/botnoi-chatbot-school-conversation-flow-2f3c2a09d248?source=rss-2ead48431874------2</link>
            <guid isPermaLink="false">https://medium.com/p/2f3c2a09d248</guid>
            <dc:creator><![CDATA[Petchakrit Pinyopawasutthi]]></dc:creator>
            <pubDate>Wed, 07 Oct 2020 06:25:08 GMT</pubDate>
            <atom:updated>2020-10-07T06:25:08.187Z</atom:updated>
            <content:encoded><![CDATA[<h3>Botnoi Chatbot School : Conversation Flow</h3><p>จากสัปดาห์ที่แล้ว เราได้สอนให้บอทของเราสามารถเข้าใช้ Text ที่ผู้ใช้สื่อสารมาได้แล้ว มาในสัปดาห์นี้เราจะมาดูอะไรกันอีกละ แน่นอนว่า แชทบอท ถูกสร้างขึ้นมาเพื่อตอบโจทย์งานอย่างใด อย่างหนึ่ง เช่น ตอบลูกค้า, พูดคุย, นัดหมาย เป็นต้น</p><p>ฉะนั้น ในแต่ละโจทย์งานแชทบอทก็จะมีหน้าที่หรือลักษณะที่แตกต่างกัน วันนี้เราจึงจะมาคุยกันในเรื่องของการสร้าง Conversation Flow เพื่อทำให้บอทของเราทำงานได้ดียิ่งขึ้น ตอบโจทย์ผู้ใช้ได้ดียิ่งขึ้น</p><h4>องค์ประกอบหลัก</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/684/1*uQIIMokz-eufiJFpl-n_zw.png" /></figure><p>ในการจะ Design Flow การทำงานของบอท เราจะต้องคำนึงถึงองค์ประกอบหลัก 3 อย่าง</p><ol><li><strong>Business Flow</strong></li></ol><ul><li>โจทย์ของธุรกิจที่ต้องการให้บอทตอบคำถาม</li><li>คำถามที่ลูกค้าถามบ่อยๆ (FAQ)</li><li>โอกาสที่จะเกิดขึ้นจากการใช้แชทบอท</li></ul><p>โดยให้ตั้งโจทย์จากการใช้งานจริงของลูกค้า</p><p>2. <strong>User Flow</strong></p><ul><li>คำพูดที่ user จะใช้</li></ul><p>ในแต่ละโจทย์ก็จะมีความแตกต่างกัน</p><p>3. <strong>Conversation Flow</strong></p><ul><li>คำพูดที่บอทจะใช้</li><li>User Journey</li><li>การเรียงลำดับคำถาม</li><li>การใช้ object เข้ามาช่วย</li><li><strong>** ควรจะคำนึงถึงเหตุการ์ที่เป็นไปได้ให้ครอบคลุมที่สุด เพื่อที่เราจะได้พัฒนาบอทของเราให้ตอบโจทย์ลูกค้าและสร้างความพึงพอใจสให้กับลูกค้าได้ ***</strong></li></ul><h4>Conversation Flow</h4><p>การวางโครงสร้างที่กำหนดเส้นทางในการสนทนาของ Chatbot กับผู้ใช้งาน</p><p>ดังนั้นการออกแบบ Conversational Flow จึงเป็นสิ่งที่สำคัญมากในอันดับแรกๆของการจะสร้าง Chatbot ขึ้นมา เพราะนั่นหมายถึงประสิทธิภาพ และความสามารถในการตอบบทสนทนากับผู้ใช้งานได้อย่างตรงประเด็น</p><p>1. จุดประสงค์หลักๆของแชทบอทคืออะไร ?</p><p>2. ให้ List Intent ที่มีออกมาทั้งหมด</p><p>3. ออกแบบ Business Flow โดยยังไม่ต้องเจาะลึกถึงบทสนทนา</p><p>4. ออกแบบคำตอบว่าควรใช้ Object อะไร</p><p>5. ออกแบบ Conversation โดยนำ Business Flow มาปรับเป็น Coversation flow โดยการออกแบบรูปแบบประโยคสนทนา</p><p><strong>*** คำแนะนำ ***</strong></p><p>1. บอทควรมี Character ที่ชัดเจน เพื่อกำหนด</p><p>2. เริ่มต้นบทสนทนาด้วยการทักทาย หรือ Greeting Message</p><p>3. มีเมนูหลักแนะนำ เพื่อเสนอทางเลือกให้ผู้ใช้</p><p>4. บทสนทนาส่งผลต่อประสบการณ์ที่ดีของผู้ใช้</p><p>5. เลือกรูปแบบของคำตอบให้เหมาะสม</p><p>6. เมื่อมีบทสนทนาต่อเนื่องในการเก็บข้อมูลของผู้ใช้ ควรมี Consent ให้ผู้ใช้ยินยอมด้วย</p><p>7. เมื่อมีการเก็บข้อมูล ควรมีสรุปข้อมูลเพื่อให้ผู้ใช้ยืนยันหรือแก้ไข</p><p>8. เมื่อแชทบอทตอบไม่ได้ ต้องยอมรับและมีวิธีการแก้ไขปัญหาเบื้องต้นก่อน</p><p>9. มีบทสทนาที่คุยเล่นบ้างร่วมไปถึง FAQ ต่างๆ</p><p>ตัวอย่าง Conversation Flow</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jBCYSzW8SfAVgqju9_Lm0w.png" /><figcaption><a href="https://sv1.picz.in.th/images/2020/09/21/ObTyxl.jpg"><strong>https://sv1.picz.in.th/images/2020/09/21/ObTyxl.jpg</strong></a></figcaption></figure><p>สิ่งที่สำคัญสำหรับสัปดาห์นี้ก็คือ เราจะต้องไปคิด Conversation Flow ในธุรกิจของเราออกมาโดยคำนึงถึงคำแนะนำที่ทางบอทน้อยได้นำเสนอ</p><p>แล้วสัปดาห์หน้าเราจะกลับมาพร้อมกับการสร้าง รายละเอียดเล็กๆน้อยๆ เพื่อให้บอทของเราทำได้อย่างมีประสิทธิภาพมากขึ้น</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2f3c2a09d248" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Botnoi Chatbot School : NLP & Mapping]]></title>
            <link>https://medium.com/@petchakritskopinyopawasutthi/botnoi-chatbot-school-nlp-mapping-1dbef6020318?source=rss-2ead48431874------2</link>
            <guid isPermaLink="false">https://medium.com/p/1dbef6020318</guid>
            <dc:creator><![CDATA[Petchakrit Pinyopawasutthi]]></dc:creator>
            <pubDate>Fri, 02 Oct 2020 03:58:46 GMT</pubDate>
            <atom:updated>2020-10-02T03:58:46.127Z</atom:updated>
            <content:encoded><![CDATA[<h3>Botnoi Chatbot School : NLP &amp; Mapping</h3><p>กลับมาแล้วกับคอร์ส Botnoi Chatbot School สัปดาห์นี้เราจะมาสอนบอทของเราให้ฉลาดขึ้นกันต่อจากสัปดาห์ที่แล้วที่เราสามารถสร้างบอทได้แล้วนะครับ</p><p>หากใครยังสร้างบอทไม่ได้ หรือยังไม่มีบอท สามารถย้อนกลับไปอ่านวิธีส้รางได้ที่</p><p><a href="https://medium.com/@petchakritskopinyopawasutthi/botnoi-chatbot-school-%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B9%80%E0%B8%8A%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%A1%E0%B8%95%E0%B9%88%E0%B8%AD%E0%B8%9A%E0%B8%AD%E0%B8%97-7b18a13681b1">Botnoi Chatbot School : สร้างและเชื่อมต่อบอท</a></p><p>สัปดาห์นี้เราจะเริ่มเข้าสู่หัวข้อเรื่อง NLP &amp; Mpping</p><h4><strong>NLP คืออะไร???</strong></h4><p>NLP หรือ Natural Language Processing คือ การประมวลผลภาษาธรรมชาติหรือภาษามนุษย์ รวมถึงการวิเคราะห์ทางด้านภาษาศาสตร์ การตีความจากข้อความ</p><p>แน่นอนว่าถ้าหากไปดูเบื้องหลังของ NLP จริงๆ ไม่ว่าจะตาม google, paper ต่างๆ</p><p>เราจะต้องพบเจอกับสิ่งเหล่านี้</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/669/1*FI57iptnkVFz72tlfddxNQ.png" /></figure><p>มันคืออะไร???</p><p>เบื้องหลังมันคือ การใช้ Deep Learning, Machine Learning</p><p>แต่เราต้องทำเองทั้งหมดเลยหรือเปล่า???</p><p>ไม่จำเป็นครับ เนื่องจากบอทน้อยทำทุกอย่างเบื้องหลังให้หมดแล้ว เราสามารถใช้แพลทฟอร์มของบอทน้อยได้เลย แล้วชีวิตจะง่ายขึ้น</p><p>ก่อนที่จะไปรู้ว่า NLP ใช้งานอย่างไร ขอพาทุกคนไปรู้จัก Keyword &amp; Intent &amp; Message กันเสียก่อน</p><h4>Keyword &amp; Intent &amp; Message</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/731/1*odm4i3qwhhl2Jwh0iLLpLg.png" /></figure><p><strong>ตัวอย่าง</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/481/1*xDpEh1BLM846UhlxN8EP-A.png" /></figure><p>Intent เปรียบเสมือนการแยกหมวดหมู่ของข้อความที่ได้รับจากผู้ใช้ เพื่อดูว่าผู้ใช้มีความต้องการอะไร</p><p>หลังจากที่บอทเข้าใจแล้วว่าผู้ใช้ต้องการอะไรทำอะไรต่อละ???</p><p>บอทก็ต้องสามารถตอบกลับได้สิ</p><p><strong>ตัวอย่าง</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/493/1*4h5azyFKW-i1POHMB8CjxQ.png" /></figure><p>เมื่อเราแยกได้แล้วว่า Intent คืออะไร &gt;&gt;&gt; ก็เรียบเสมือนเรารู้แล้วว่าผู้ใช้ต้องการอะไร &gt;&gt;&gt; เราก็สามารถตอบกลับข้อความให้ตรงกับสิ่งที่ผู้ใช้ต้องการได้</p><p>แต่บอทของเราอาจจะไม่จำเป็นต้องตอบกลับเป็นข้อความอย่างเดียวก็ได้นะ จำบทความแรกกันได้ไหมที่ว่า บอทสามารถตอบได้ในหลายรูปแบบ สงสัยจะจำไม่ได้แน่ๆ (สามารถย้อนกลับไปดูได้ที่ ) &gt;&gt;&gt; <a href="https://medium.com/@petchakritskopinyopawasutthi/botnoi-chatbot-school-%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B9%80%E0%B8%8A%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%A1%E0%B8%95%E0%B9%88%E0%B8%AD%E0%B8%9A%E0%B8%AD%E0%B8%97-7b18a13681b1?source=friends_link&amp;sk=d42c90b489ef142a0a5df5c795e45275">https://medium.com/@petchakritskopinyopawasutthi/botnoi-chatbot-school-%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B9%80%E0%B8%8A%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%A1%E0%B8%95%E0%B9%88%E0%B8%AD%E0%B8%9A%E0%B8%AD%E0%B8%97-7b18a13681b1?source=friends_link&amp;sk=d42c90b489ef142a0a5df5c795e45275</a></p><p>ทีนี้เราจะมาสรุปกัน</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/752/1*Vshh_wQ4tJBz2o6bVhWueQ.png" /></figure><p>ถามว่า การใช้ หลักการของ NLP &amp; Mapping มันดีกว่าวิธีการแบบเดิมๆ ที่ใช้แต่ Keyword อย่างไร</p><p>ลองคิดดูนะครับว่าถ้าสมมติ บอทของเราปกติได้รับข้อความเข้ามาว่า</p><p>“วันนี้มีโปรโมชั่นอะไร” &gt;&gt;&gt; เราก็จะตอบกลับไปว่า “มี xxx ครับ”</p><p>ต่อมามีคนทักเข้ามาอีกว่า</p><p>“วันนี้มีโปรโมชันอะไร” &gt;&gt;&gt; เราก็จะตอบกลับไปว่า “มี xxx ครับ”</p><p>ต่อมามีคนทักเข้ามาอีกว่า</p><p>“มีโปรอะไร” เราก็จะตอบกลับไปว่า “มี xxx ครับ”</p><p>ถ้าเป็นวิธีการแบบเดิมๆ แค่คนทักเขามาสามแบบ เราก็จำเป็นต้องจับคู่ทั้งสามแบบแล้ว เนื่องจากลักษณะการพิมพ์ของแต่ละคนอาจจะมีสไตล์ที่แตกต่างกัน</p><p>แต่ถ้าเป็นการใช้ NLP &amp; Mapping</p><p>มันจะพยายามแยกคำถามว่า “วันนี้มีโปรโมชั่นอะไร”, “วันนี้มีโปรโมชันอะไร”, “มีโปรอะไร” อยู่ใน Intent เดียวกัน หลังจากนั้นค่อย Mapping Intent ไปสู่ คำตอบของเรา</p><p>ข้อดีของมันก็คือ สามารถรอบรับลักษณะการพิมพ์ได้หลากหลายมากขึ้น ลดภาระงานของเราที่จะต้องมานั่ง Mapping ทุกครั้งที่มีคนพิมพ์ผิดหรือสไตล์ใหม่ๆเข้ามา</p><p>ซึ่งในแพลทฟอร์มของบอทน้อย NLP เนี่ย แบ่งได้ออกเป็นสองส่วน ก็คือ Train, View</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/191/1*MXcLTTRwCNCrp5ymKpNVWw.png" /></figure><p>หน้า Train เนี่ย เอาไว้สำหรับ Train ข้อมูลให้กับ Model ของเรา พูดง่ายๆ ก็คือ หน้าที่จะสอนให้บอทของเรามีสมองสามารถตอบกลับข้อความผู้ใช้ได้นั่นเอง</p><p>หน้า View ก็เอาไว้สำหรับดูข้อมูลที่เราเคย Train ไว้</p><p>ทุกคนจะต้องเจอกับคำว่า “Confident” ในหน้านี้ด้วย</p><p>Confident คือค่าความมั่นใจในการตอบของบอท</p><p><strong>Confident</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/747/1*ImEHCvxQv67uOrPuxDkJLg.png" /></figure><p>จากรูปตัวอย่าง จะเห็นว่าบอทของเรามีความมั่นใจเกินกว่า 80% ว่าคำว่า สวัสดีครับ, สวัสดีค่ะ, หวัดดีครับ, หวัดดีค่ะ ว่าเป็น Intent ของการทักทาย ในขณะที่คำว่า ดีฮ่ะ บอทไม่สามารถตีความได้ว่ามันคืออะไร ถามว่ามีประโยชน์อย่างไร???</p><p>ในกรณีที่ผู้ใช้พิมพ์ข้อความที่บอทเราตีความไม่ได้ออกมา หรืออาจจะเข้าใจแต่มีค่า Confident ต่ำมากๆ นั่นหมายความว่า บอทเราไม่มั่นใจเลยว่าสิ่งที่ผู้ใช้ต้องการคืออะไร &gt;&gt;&gt; เราก็จะสามารถ set ค่าได้ว่า กรณีที่บอทไม่เข้าใจเนี่ย จะให้ตอบอะไรออกไปด้วย Default Message</p><p>เนื้อหาฉบับย่อจบแล้วครับ ต่อไปผมจะพาทุกคนไปดูบอทที่ผมสร้างจากบทเรียนนี้ดีกว่า</p><p>ผมลอง Train ด้วยข้อมูลดังภาพด้านล่าง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/860/1*M00ejLPycm2B2jrT0g8JUw.png" /></figure><p>และกำหนด Mapping และ Default Message ตามภาพด้านล่าง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/841/1*COra53rGRkLBLYTMUZ5x3A.png" /></figure><p>ลองใช้งานจริงกันครับ</p><p><strong>ภาพหลังการ Train</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/361/1*uWUhjsm6a3k7yvuaIJp5_g.png" /></figure><p>เห็นไหมครับ???</p><p>ผมไม่เคยสอนบอทว่า “สวัสดี Benz” ให้ตอบยังไง แต่บอทสามารถตอบได้อย่างถูกต้อง ขณะเดียวกันถ้าเจอคำถามที่บอทไม่เข้าใจก็จะตอบด้วย default message</p><p>ไม่ยากเลยใช่ไหมครับ อยากให้เพื่อนๆลองเล่นกันดูนะครับ</p><p>บทความต่อไปจะเริ่มพูดถึงเรื่องการสร้าง Flow Conversation กันบ้าง เพื่อทำให้บอทของเราทำงานได้อย่างไหลลื่นและคลอบคลุมการทำงานที่เราต้องการ</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1dbef6020318" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Botnoi Chatbot School : สร้างและเชื่อมต่อบอท]]></title>
            <link>https://medium.com/@petchakritskopinyopawasutthi/botnoi-chatbot-school-%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B9%80%E0%B8%8A%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%A1%E0%B8%95%E0%B9%88%E0%B8%AD%E0%B8%9A%E0%B8%AD%E0%B8%97-7b18a13681b1?source=rss-2ead48431874------2</link>
            <guid isPermaLink="false">https://medium.com/p/7b18a13681b1</guid>
            <dc:creator><![CDATA[Petchakrit Pinyopawasutthi]]></dc:creator>
            <pubDate>Thu, 01 Oct 2020 18:29:01 GMT</pubDate>
            <atom:updated>2020-10-01T18:29:01.711Z</atom:updated>
            <content:encoded><![CDATA[<h3>Botnoi Chatbot School : สร้างและเชื่อมต่อบอท</h3><p>ต่อจากบทความที่แล้วที่เราได้แนะนำแชทบอทเบื้องต้นไปบ้างแล้ว หากใครอยากจะอ่านสามารถติดตามได้ที่</p><p><a href="https://medium.com/@petchakritskopinyopawasutthi/course-botnoi-chatbot-school-bf42fc9efbc1">Course : Botnoi Chatbot School</a></p><p>วันนี้เราจะมาสู่จุดเริ่มต้นกันก็คือ มาสร้างแชทบอทเบื้องต้นกัน โดยใช้แพลทฟอร์มของบอทน้อยกันไปเลยจ้า</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/571/1*-8SV0li8Sh1NF7yTSGo-8A.png" /></figure><p>ก่อนที่จะเริ่มสร้างแชทบอท เราขอพาทุกคนไปรู้จักกับรูปแบบ Object ต่างๆ ในการตอบของแชทบอทกันก่อน</p><p><strong>Carousel</strong></p><p>เป็นปุ่มกดที่อยู่ด้านล่าง (มีมากสุดได้ 3 ปุ่มกด) โดยที่มีรูปภาพอยู่ด้านบน</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/729/1*I2WdPLFZDenZndpNfGQjEQ.png" /></figure><p><strong>Quick Reply</strong></p><p>Quick Reply จะเป็นปุ่มกดเช่นเดียวกัน แต่จะหายไปเมื่อเราได้กดเลือกปุ่มกดไปแล้ว สร้างขึ้นมาเพื่อกำหนดให้เป็น Rule-based เพื่อต้องการให้ผู้ใช้ตอบคำถามของเราเฉพาะในส่วนที่เรากำหนดไว้</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/735/1*e35z3X9ILVxCxADE9dctFQ.png" /></figure><p><strong>Button</strong></p><p>เป็นปุ่มให้กดเช่นเดียวกัน แต่จะสามารถเลื่อนกลับมากดอีกเมื่อไหร่ก็ได้ ไม่สามารถใส่รูปภาพได้</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/730/1*SfMi181Dw2QQ7q0RU5EEtQ.png" /></figure><p><strong>Image</strong></p><p>เราสามารถตอบลูกค้าในรูปแบบของรูปภาพได้เช่นกัน</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/664/1*wMGElblQnV4w9ZgDBYMntA.png" /></figure><p><strong>Dialogue + API</strong></p><p>เราสามารถกำหนด Journey ของลูกค้าได้ เช่น สมมติว่าลูกค้าสอบถามมาว่า มีโปรโมชั่นไหม???</p><p>เราสามารถกำหนดบอทให้ถามกลับได้ว่า สนใจโปรโมชั่นมือถือ หรือ โปรโมชั่นอาหาร</p><p>แล้ว flow ของเราก็จะแยกออกเป็นสองทางเช่น หากสนใจโปรโมชั่นมือถือ เราอาจจะให้ตอบกลับเป็นรูปภาพ ขณะที่หากสนใจโปรโมชั่นอาหารอาจจะกำหนดให้ตอบเป็น ข้อความปกติ</p><p><strong>Flex Message</strong></p><p>ยังมีแค่ใน Line เท่านั้น เป็นลูกเล่นออกแบบข้อความด้วยตัวเองได้ เพื่อเพิ่มความหลากหลายและความสวยงาม</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/732/1*Dzs7JShxFhtAjQxfdMHpdw.png" /></figure><p><strong>Rich Menu</strong></p><p>ยังมีแค่ใน Line เท่านั้น เป็นศูนย์รวมเมนูที่เราสามารถออกแบบเองได้เลย</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/725/1*tscDBe5uI9uKBYK86hE35g.png" /></figure><p>หมดแล้วครับ เราจะมาสร้าง Chatbot กันจริงๆสักที</p><h4><strong>สร้าง Chatbot</strong></h4><p>เข้าไปที่ <a href="https://nlp-tool.botnoinoi.com/">https://nlp-tool.botnoinoi.com/</a> แล้วเข้าด้วย email และรหัส ที่สมัครไว้กับทางบอทน้อยได้เลยจ้า</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/707/1*DDjadoHVU0gD41e8pVplfA.png" /></figure><p>ก่อนที่เราจะสร้าง แชทบอทจริงๆเนี่ย อยากให้เราลองนึกเสียก่อนว่าเราต้องการให้ บอทของเรามี personal แบบไหน วัยรุ่น, คนมีอายุ หรือ แม้กระทั่งเป็นผู้หญิง ผู้ชาย การกำหนด personal ของบอทสำคัญมากแค่ไหน แน่นอนว่าคงไม่มีใครอยากคุยเล่นกับบอทที่เป็นคนจริงจัง ใช่ไหมหละ??? เช่นเดียวกัน บุคลิกของบอทที่ดีก็ทำให้ดึงดููดผู้ใช้ได้เช่นกัน</p><p><strong>วิธีเชื่อมต่อบอทเข้ากับ Line</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/713/1*5PltG7_QNy2mdw6fCDQuCQ.png" /></figure><ul><li>จากนั้นให้เลือก Create Provider</li><li>เลือก Messaging API Channel</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/531/1*nkBhBdnXvGcYHRwR3I9L9w.png" /></figure><ul><li>สแกน QRcode &gt;&gt;&gt; Add Friend</li><li>สร้าง Channel Access Token</li></ul><p>สิ่งที่จำเป็นต้องใช้ในการเชื่อมต่อบอท</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/686/1*8zSJfSy-cIds3G39EbmTGA.png" /></figure><p>เมื่อทำเสร็จแล้วมาทดลองกันดูดีกว่าครับ</p><p>ในที่นี้ผมกำหนดให้บอทของผมเป็นผู้หญิงอายุประมาณ 25 ปี ใช้ชื่อว่า Dr. Benz ครับ</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/362/1*KW1FMsZ9Haj3A8uezqiuXA.png" /></figure><p>ว้าว ว้าว ว้าว !!! ง่ายขนาดนี้เลย</p><p>แต่สังเกตไหมครับว่า บอทของเรายังตอบอะไรไม่รู้เรื่อง เนื่องจากเรายังไม่ได้สอนให้บอทของเราสามารถตอบคำถามได้ สำหรับบทความหน้า เราจะมาอธิบายเบื้องต้นเกี่ยวกับหลักการทำงานของสมองบอทหรือที่บางคนอาจเคยได้ยินมาบ้างในชื่อว่า Natural Language Processing (NLP) นั่นเอง</p><p>ติดตามกันได้ในบทความต่อไปครับ</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7b18a13681b1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Course : Botnoi Chatbot School]]></title>
            <link>https://medium.com/@petchakritskopinyopawasutthi/course-botnoi-chatbot-school-bf42fc9efbc1?source=rss-2ead48431874------2</link>
            <guid isPermaLink="false">https://medium.com/p/bf42fc9efbc1</guid>
            <dc:creator><![CDATA[Petchakrit Pinyopawasutthi]]></dc:creator>
            <pubDate>Thu, 01 Oct 2020 17:29:46 GMT</pubDate>
            <atom:updated>2020-10-01T17:29:46.261Z</atom:updated>
            <content:encoded><![CDATA[<h3>Course : Botnoi Chatbot School</h3><p>สวัสดีครับทุกคน หลายคนอาจจะตามมาอ่านบทความนี้เนื่องจากบทความของ Contextual Marketing ในคอร์ส Data Science Essential หรืออาจจะหลงเข้ามาเนื่องจากอยากลองมาทำความรู้จักกับแชทบอทน้อยของ Botnoi วันนี้ผมจะพาทุกคนมารู้จักกับคอร์ส Botnoi Chatbot School กันครับ</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/218/1*8ZrJv059rfdxNnArtVnwtg.png" /></figure><p><strong>What is Chatbot ?</strong></p><p><em>“A type of conversational agent, a computer program designed to simulate an intelligent conversation with one on more human users in natural language via auditory or textual methods. Chat bots are virtual assistant programmed to automatically”</em></p><p>แชทบอทสามารถเอาไปใช้กับอะไรได้บ้าง???</p><p>หลักๆส่วนใหญ่ก็คือ ใช้กับ Call center, ตอบลูกค้า</p><p>แล้วแชทบอทเนี่ย มันมีประโยชน์อย่างไร???</p><p>ลองคิดภาพตามนะครับ ถ้าเรามีลูกค้าอยู่หลักล้านคนครับ ในการที่จะมี Call center เนี่ย ก็ต้องมีจำนวนคนต่ำๆ หลักพันคนเลยทีเดียว เพื่อที่ลูกค้าจะได้โทรเข้ามาปรึกษา กับ Call center ของเรา ลองคิดภาพว่า ถ้าเกิดวันหนึ่งลูกค้าโทรเขามาพร้อมกันหลายๆคน Call center ของเราจะต้องทำงานหนักกันขนาดไหน???</p><p>ทีนี้ลองคิดกันในมุมกลับนะครับ ถ้าเราเป็นคนโทรไปปรึกษา Call center ปรากฎว่า วันนั้นเนี่ยมีคนโทรมาหา Call center เยอะมาก เราเองก็จำเป็นต้องรอ Call center ว่าง</p><p>เราจะสามารถรอได้นานขนาดไหนกัน??? ถ้าเราเกิดไม่พอใจ เราก็อาจจะไม่ใช้บริการเขาอีก เห็นไหมครับว่า มันเป็นปัญหาใหญ่ได้เลยนะครับ เพราะมันหมายถึงการที่เราอาจจะสูญเสียความเชื่อมั่นของลูกค้าไป</p><p><strong>เหตุการณ์สมมติ</strong></p><p>คนๆนึงสามารถตอบข้อความได้ 200 ข้อความ/ชั่วโมง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/365/1*S3i9LZEgmPLBJPWF8riCGQ.png" /></figure><p>ถ้าใน 1 ชั่วโมงมีข้อความเข้ามาทั้งหมด 2000 ข้อความ เราจะต้องทำอย่างไร</p><p>เราก็จะต้องสร้างคนที่สามารถทำงานแบบเดิมได้เพิ่มขึ้นมาอีกให้เป็น 10 คน</p><p>ถ้าใน 1 ชั่วโมงมีข้อความเข้ามาทั้งหมด 20000 ข้อความ เราจะต้องทำอย่างไร</p><p>เราก็จะต้องสร้างคนที่สามารถทำงานแบบเดิมได้เพิ่มขึ้นมาอีกให้เป็น 100 คน</p><p>นั่นเท่ากับว่าถ้าธุรกิจเราโตขึ้น เราต้องเสีย budget ทั้งหมดในการจ้างพนักงาน Call center เพิ่มขึ้นเป็นจำนวนหลายเท่าตัวเลย</p><p>แต่ถ้าเราหันมาใช้แชทบอทหละ???</p><p>ทางบอทน้อยแสดงให้เราเห็นเลยว่า ทุกวันนี้มีคนคุยกับบอทน้อยประมาณ 3 ล้านข้อความต่อวัน &gt;&gt;&gt; ถ้าเราไม่ใช่แชทบอทเนี่ย ต้องจ้างพนักงานกี่คนเนี่ย *0*</p><p>เห็นข้อดีของแชทบอทกันแล้วใช่ไหมครับ</p><p>ต่อไปผมจะพาทุกคนไปสร้างแชทบอทกัน ติดตามกันได้ในบทความต่อไปเลยครับ</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bf42fc9efbc1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Data Science Essential Week7]]></title>
            <link>https://medium.com/@petchakritskopinyopawasutthi/data-science-essential-week7-f395a7fe5462?source=rss-2ead48431874------2</link>
            <guid isPermaLink="false">https://medium.com/p/f395a7fe5462</guid>
            <dc:creator><![CDATA[Petchakrit Pinyopawasutthi]]></dc:creator>
            <pubDate>Thu, 01 Oct 2020 16:07:49 GMT</pubDate>
            <atom:updated>2020-10-01T16:07:49.251Z</atom:updated>
            <content:encoded><![CDATA[<p>สัปดาห์ที่ 7 แล้วนะครับ คราวนี้กลับมาให้หัวข้อ Recommendation Systems อิอิ</p><p>อย่างเพิ่งเบื่อกันนะครับ</p><p>Recommendation System (RS) คือ ระบบที่ช่วยแนะนำในสิ่งที่เราชอบมาให้ โดยอ้างอิงจากผู้ใช้งานที่คล้ายคลึงกับเราและประวัติการใช้งานของเราเป็นพื้นฐาน</p><p>ปัจจุบันที่เราคุ้นเคยก็จะเป็นภาพยนตร์แนะนำจากแพลทฟอร์ม Netflix เพลย์ลิสต์, แนะนำสำหรับคุณจาก Spotify</p><p>ถามว่า Recommendation System ปัจจุบันบริษัทใหญ่ๆ หลายที่ใช้ทำอะไรกันบ้าง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/721/1*vg94YAwcZI5HKOCcr3SUwg.png" /></figure><p>ตัวอย่างในอุตสาหกรรมใหญ่</p><p><strong>Facebook</strong> — “People You May Know” เคยใช่ไหมที่เข้า Facebook แล้วเอ๊ะ??? ทำไมมีปุ่มนี้ขึ้นมา เพราะว่า Facebook เองอยากจะเพิ่ม connection ของเรากับคนที่อาจจะรู้จักเพิ่มขึ้นเพื่อจะได้สามารถแนะนำสินค้าและบริการของเขาให้กับเราได้อยู่ เพื่อ keep contact กับเราเอาไว้</p><p><strong><em>Google — “Search Results Adjusted”</em></strong></p><p>เวลา search ก็จะสามาถ Ranking Page ให้เรา</p><p><strong><em>Youtube — “Recommended Videos”</em></strong></p><p>อันนี้เห็นได้ชัดเจนมากๆ Youtube มักจะแนะนำ วิดีโอในกลุ่มที่เราชอบดูบ่อยๆ ขึ้นมาบนหน้าแรกให้กับผู้ใช้</p><p><strong><em>Pinterest — “Recommended Images”</em></strong></p><p>Pinterest จะแนะนำรูปภาพที่ตรงกับสไตล์ของเรา</p><p><strong><em>Netflix — “Other Movies You May Enjoy”</em></strong></p><p>แนะนำภาพยนตร์ที่คุณควรจะดูภายใต้ประสบการณ์การดูหนังที่ผ่านมาของคุณ</p><p><strong><em>LinkedIn — “Job You May Be Interested In”</em></strong></p><p>มีการเสนองานที่คิดว่าเหมาะกับโปรไฟล์ของคุณ</p><p><strong><em>Amazon — “Customer Who Bought This Item Also Bought …”</em></strong></p><p>เป็นการแนะนำสินค้าเพิ่มเติม เพื่อเพิ่มยอดขายให้กับตัว Amazon เอง</p><p><strong>ตัวอย่าง Recommendation System ฉบับพื้นฐาน</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/729/1*KUYPt1mm-6ogeZIrRXKyCA.png" /></figure><p>ทั้งหมดขอยกตัวอย่างเป็นเรื่องของภาพยนตร์นะครับ</p><h4><strong>Content-Based Filtering</strong></h4><p>คือการนำ features ของ content นั้นๆ มาใช้เป็นปัจจัยในการดูว่า เราจะชอบ item นั้นไหม ยกตัวอย่างเช่น หนังซุปเปอร์ฮีโร่ &gt;&gt;&gt; features กลุ่มนี้ ก็อาจจะเป็น หนัง sci-fi, action , นักแสดง เป็นต้น จากนั้นก็จะนำ features เหล่านี้เพื่อไปเช็คว่าลูกค้าคนนี้ชอบ features เหล่านี้ไหม หากคุณเป็นคนที่ชอบ หนัง sci-fi, actionหนังเรื่องนี้ก็จะเหมาะกับคุณ</p><p><strong>ข้อดี</strong></p><ul><li>ไม่ต้องการข้อมูลของ user ที่จะแนะนำสินค้าให้</li><li>เมื่อมีสินค้าใหม่ ๆ ระบบสามารถแนะนำให้กับ user ได้ทันที</li><li>สามารถอธิบายว่าทำไมถึงแนะนำสินค้าให้กับ user</li><li>ไม่ต้องการข้อมูลจาก user อื่น</li></ul><p><strong>ข้อจำกัด</strong></p><ul><li>ต้องมีจำนวนของข้อมูลความชอบของลูกค้าที่มากพอ เพื่อนำไปสร้างโมเดลที่ดี</li><li>สินค้าที่แนะนำ จะไม่มีความหลากหลาย เพราะระบบจะแนะนำแต่สินค้าที่มีลักษณะคล้ายคลึงกับสินค้าที่ user เคยเลือกไว้ในอดีต</li></ul><p><strong>ภาพตัวอย่าง</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/733/1*LOvOKt5BKocdo3ylja4Raw.png" /></figure><p>จะเห็นว่าดังรูปด้านบนเนี่ย ก็จะเป็นการบ่งบอกว่า หากคุณชอบดู Black Panter แล้วละก็ เราก็แนะนำให้คุณดู Iron Man นะ</p><h4><strong>Collaborative Filtering</strong></h4><p>จะมีการเก็บข้อมูลของ user แต่ละคน ว่าแต่ละคนชอบหนังอะไร</p><p>เช่น</p><p>ถ้าสมมติว่าเรา ต้องการจะแนะนำหนังให้กับนาย C สักเรื่องนึง โดยไม่ใช่ Recommendation System นะ คุณคิดว่า เราควรแนะนำหนังเรื่องไหนมากกว่ากัน ระหว่าง พี่มากพระโขนง กับ Ant-Man สมมติว่าเรามีข้อมูลดังนี้</p><p>นาย A ชอบ Ant-Man, Captain America, Batman, etc.</p><p>นาย B ชอบ พี่มากพระโขนง, หลวงพี่แจ๊ส, แฟนฉัน</p><p>นาย C ชอบ หลวงพี่แจ๊ส, แฟนฉัน, ปิดเทอมใหญ่ หัวใจว้าวุ่น</p><p>ถ้าคุณคิดว่า Ant-Man ทำไมละ??? ถ้าคุณคิดว่า พี่มากพระโขนง เพราะอะไรหรอ???</p><p>สำหรับเรา เราคิดว่าก็คงจะเป็นพี่มากพระโขนงแหละ เพราะเราคิดว่านาย B กับ C ชอบดูหนังเหมือนกักนตั้งสองเรื่องแล้ว น่าจะมีรสนิยมคล้ายๆกันแหละมั้ง</p><p>แต่ถามว่า เราจะแนะนำคนทั้งหมดเป็นล้านคนได้ไหม เราคงมานั่งดูข้อมูลของแต่ละคนไม่ไหวแน่ๆ</p><p>นี่แหละเป็นที่มาของ Recommendation System ระบบจะดูความคล้ายคลึงกันระหว่างคนสองคน เพราะมีความเชื่อว่าคนที่ชอบดูหนังแบบเดียวกันมักจะชอบหนังในแบบๆ</p><p>เดียวกัน</p><p><strong>ข้อดี</strong></p><ul><li>ไม่ต้องการข้อมูลของ product</li><li>สามารถแนะนำสินค้าที่ user ไม่เคยทราบมาก่อน</li></ul><p><strong>ข้อจำกัด</strong></p><ul><li>ไม่สามารถนำมาใช้ได้หากยังไม่มีฐานข้อมูล จำเป็นต้องใช้ content-based filtering ในการสร้างฐานข้อมูลก่อน</li><li>ต้องมีข้อมูลความสัมพันธ์ของ user กับสินค้าที่มากเพียงพอ</li><li>ฐานข้อมูลเป็น sparse matrix ทำให้เกิดข้อจำกัดด้านการประมวลผล และ scalability</li><li>ไม่มี คุณลักษณะ ของสินค้า ทำให้ไม่สามารถอธิบายความสัมพัมธ์ของ user กับสินค้าได้</li></ul><p><strong>ภาพตัวอย่าง</strong></p><p>เรามีประวัติการดูหนังของคุณ Arm Botnoi, Tao Kitti, Dr. Winn, Ricky แล้วอยากจะแนะนำหนังสักเรื่องให้คุณ HoNg</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/735/1*SmZOks5x2rf9ttqF66ZJdg.png" /></figure><p>เราควรแนะนำหนังอะไรให้คุณ HoNg ดีหละ???</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/1*tygfi3YLtHXgGSUEUgYTRQ.png" /></figure><p>ก็ควรจะเป็น Iron Man นะ เพราะคุณ HoNg ชอบดู Black Panter เหมือนกับคุณ Arm Botnoi, Tao Kitti</p><p><strong>ตัวอย่างเพิ่มเติมด้วยการทำ Matrix Factorization</strong></p><p>กำหนดให้เรามีฐานข้อมูลของการดูหนังทั้งหมด 5 เรื่องของคน 4 คน โดยแต่ละคนจะให้ rating ของหนังจากคะแนน 1–5 คะแนน</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/751/1*QWoIH8qANTIa0DfQiq2zyw.png" /></figure><p>ทีนี้ถ้าเรามาดูกันให้ละเอียด</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/661/1*p_TOAWFj8RZLyJLwff70qA.png" /></figure><p>จะเห็นว่าคนที่ 1 กับคนที่ 3 เนี่ย เหมือนกันเป๊ะเลย ถ้ามองในแง่ของ Matrix เนี่ย มันคือ Matrix เราเป็น sigular หรือง่ายๆ ก็คือ rank ของ Matrix ไม่เท่ากับ n หมายความว่า มีบางแถวที่สามารถตัดทิ้งออกได้เพื่อลด Dimension ให้กับ Matrix</p><p>ขณะเดียวกัน</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/709/1*icedJhgVUSmt0ieSTdJQ1Q.png" /></figure><p>ในแนวคอลัมน์ก็อาจเกิด dependency ได้นะ</p><p>พูดง่ายๆก็คือ เราต้องการให้ Matrix ของเราเนี่ย เป็น non-singular matrix นั่นเอง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/595/1*_jEcgykZb9DzCVCDMfnz9w.png" /></figure><p>กรณีนี้เราก็คาดว่าผู้ชายคนนี้น่าจะให้คะแนน rating หนังเรื่องที่ 5 1 คะแนน เนื่องจากมีลักษณะการดูหนังคล้ายกับคนแรกเลย</p><p><strong>หลักการทำงาน ของ Matrix Factorization</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/758/1*Nk1bbOl0HPt7yxHQk77ccQ.png" /></figure><p>จะเห็นว่าเดิมเรามี Matrix ขนาด 4*5 เราสามารถทำ singular value decomposition (SVD) ก็ได้ แต่ค่าที่ได้อาจจะออกมาติดลบได้ ในที่นี้หากใช้เป็น Non-negtaive Matrix Factorization ก็จะช่วยแก้ปัญานี้ได้</p><p>เราจะเริ่มต้นด้วยการ Initail Value ออกมา หลังจากนั้น ก็คำนวนหา Error Function เพื่อเป็น Feedback ให้กับระบบ ผ่านการทำ Optimization &gt;&gt;&gt; gradient descent เพื่อปรับค่า value ใน Matrix ให้ใกล้เคียง Matrix จริงมากขึ้น</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/695/1*d6-jrYVXI0yFDG-WSoW_sw.png" /></figure><p>จากภาพด้านบนจะเห็นว่าเราสามารถทำได้เพราะเรารู้ค่าที่แท้จริงของ Matrix ไง แต่ถามว่าในความเป็นจริง 4 คนนี้อาจจะดูหนังไม่ครบทั้ง 5 เรื่องก็ได้ อาจจะดูแค่คนละ 3–4 เรื่อง ทำยังไงละทีนี้???</p><p>ดูรูปล่างต่อไปครับ</p><p>สมมติให้ช่องว่างสีขาวเนี่ยเป็นช่องที่เราไม่รู้คะแนน เพราะไม่เคยดูหนังเรื่องนั้น</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/497/1*gC0zeypJupYMkKM7Le6sqw.png" /></figure><p>คำถามก็คือเราอยากรู้ว่า นาย D เนี่ย จะให้คะแนนหนังเรื่องที่ 3 เท่าไร??? คำตอบก็คือทำเหมือนเดิม แต่เราแค่มี reference value ที่เป็นคะแนนดูหนังน้อยลงเนื่องจากมีช่องว่างเกิดขึ้น 7 ช่อง เราก็แค่มองว่าทำอย่างไรก้ได้ให้ ทำ Matrix Factorization แล้ว</p><p>ได้ค่าที่ใกล้เคียงกับ คะแนนจริงที่เรามีอยู่</p><p>ผลลัพธได้ตามรูปด้านล่าง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/535/1*PNdKIZn42yki5VVlLtdSpg.png" /></figure><p>เราก็จะสรุปได้ว่า นาย D น่าจะให้คะแนน หนังเรื่องที่ 3 5 คะแนน</p><h4><strong>Hybrid Filtering</strong></h4><p>การนำข้อดีของ Content-Based Filtering มารวมกับ Collaborative Filtering มารวมกันด้วย neural network แล้วให้ Machine Learning เป็นตัวเลือกว่า ควรใช้ตัวไหนมากกว่ากัน</p><p><strong>ข้อดี</strong></p><ul><li>แนะนำสินค้าได้แม่นยำกว่า content-based และ collaborative filtering</li></ul><p><strong>ข้อจำกัด</strong></p><ul><li>การเลือกใช้ filtering ที่เหมาะสมเพื่อสร้าง hybrid system</li></ul><p>จบไปแล้วสำหรับภาคทฤษฎีของสัปดาห์นี้นะครับ รอพบกันใหม่สัปดาห์หน้าสัปดาห์สุดท้ายแล้วครับ</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f395a7fe5462" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Data Science Essential Week6]]></title>
            <link>https://medium.com/@petchakritskopinyopawasutthi/data-science-essential-week6-c39fc4778ffb?source=rss-2ead48431874------2</link>
            <guid isPermaLink="false">https://medium.com/p/c39fc4778ffb</guid>
            <dc:creator><![CDATA[Petchakrit Pinyopawasutthi]]></dc:creator>
            <pubDate>Thu, 01 Oct 2020 10:37:13 GMT</pubDate>
            <atom:updated>2020-10-01T10:37:13.657Z</atom:updated>
            <content:encoded><![CDATA[<p>สัปดาห์นี้เรากลับมาในหัวข้อ Contextual Marketing</p><p>ก่อนอื่นขอเริ่มที่คำว่า Marketing กันก่อน</p><h4><strong>Marketing</strong></h4><p>the action or business of promoting and selling products or services, including market research and advertising</p><p>พูดอย่างง่ายๆ ก็คือ การทำให้คนรู้จักเรา รู้จักสินค้าเรา เพื่อให้คนเชื่อถือและซื้อสินค้าและบริการของเรา</p><p>Marketing เป็นอะไรที่สามารถกำหนดทิศทางให้กับองค์กรได้เลย ลองคิดดูว่าเรามีสินค้าและบริการที่ดีมากๆ แต่หากไม่มีใครรู้ัจกหรือเชื่อถือเราเลยก็ไม่มีประโยชน์อะไรเลยใช่ไหมหละ???</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/507/1*SQcTN_UY8xoIQKVl_zkp8g.png" /></figure><p>ไม่ว่าจะเป็นธุรกิจที่ดำเนินการมานานแล้วหรือธุรกิจที่เพิ่งก่อตั้ง ก็ต้องมีการทำ marketing ด้วยกันทั้งนั้น แต่อาจจะต่างกันที่สัดส่วน % โดยที่ถ้าเป็นธุรกิจที่ก่อตั้งมาไม่นานอาจจะต้องมีการลงทุนทางด้าน Marketing ถึง 12–20% ในขณะที่ ธุรกิจที่ก่อตั้งมาสักระยะหนึ่งแล้วจะใช้สัดส่วนทั้งหมด 6–12% ในการทำ Marketing</p><h4><strong>The maturity stages of marketing</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/535/1*eP_YuzTbMgCj_L9Y6YAAqA.png" /></figure><p>เรามาดูพัฒนาการของ marketing ตั้งแต่ยุคบุกเบิกมาจนถึงปัจจุบันและแนวทางในอนาคตกันดีกว่า</p><p>ในยุคเริ่มต้นเลย</p><p><strong>Mass Marketing</strong></p><p>การทำ marketing ที่พุ่งเป้าไปยังทุกคน ไม่มีการกำหนดเป้าหมายที่ชัดเจน ก็เป็นการทำ marketing ในยุคเก่าๆ</p><p><strong>Segmented Marketing</strong></p><p>จะเกี่ยวเนื่องกับ class Customer segmentation เนื่องจากเราสามารถแบ่งกลุ่มลูกค้าได้มากขึ้น ทำให้สามารถเลือกจะทำ marketing ได้ถูกกลุ่ม เฉพาะเจาะจงได้มากขึ้น ทำให้เราไม่เสีย resource บางส่วนในการนำเสนอไปในกลุ่มคนที่เขาอาจจะไม่ใช่กลุ่มที่เหมาะกับสินค้าและบริการของเรา</p><p><strong>Event-based Marketing</strong></p><p>จะเป็นการนำ Event หรือ เหตุการณ์มาเป็น Trigger เช่น เราจะส่งโฆษณาไปเมื่อถึงเวลา 12.00 เมื่อถึงเวลาปุ๊บ เราส่งโฆษณาปั๊บ</p><p><strong>Contextual marketing</strong></p><p>เป็นการรวมกันทั้ง Event-based, Segmented หรือแม้กระทั่ง Individual เพื่อที่จะระบุได้เลยว่า เสนอ offer ให้ลูกค้าแต่ละคนแตกต่างกันไป ซึ่งผลที่ได้ก็ยิ่งจะตอบสนองความต้องการของลูกค้าได้ตรงใจมากยิ่งขึ้นอีก และเป็น stage ที่มี performance สูงที่สุด</p><p>แต่ปัจจุบันเข้าใจว่าทุกคนน่าจะคุ้นชินกับคำว่า <strong>Digital Marketing</strong> เสียมากกว่า</p><h4>Digital Marketing</h4><p>ปัจจุบันหลายธุรกิจลงทุนกับการทำ Digital Marketing มากขึ้นกว่าการทำ Offline Marketing, Mass Marketing เพราะง่ายกว่าและประสิทธิภาพที่ดีกว่า</p><p>เช่น การส่งโฆษณาบน Facebook, สื่อออนไลน์ทั้งหลาย</p><p>แต่เคยลองสังเกตอะไรกันบ้างไหมครับ???</p><p>ปัจจุบันนี้ที่เวลาเราเล่น Facebook หรือ สื่อออนไลน์ต่างๆ เราจะพบเห็นโฆษณามากมาย หลักพันใน 1 วันเลยทีเดียว แต่มีใครจำโฆษณาอะไรได้บ้าง อยากให้ผู้อ่านลองนึกดูนะครับว่าเราจำโฆษณาอะไรได้บ้าง</p><p>หึหึ!!! เหมือนจะนึกอะไรไม่ค่อยออกเลยใช่ไหมหละ???</p><p>นั่นนะสิ เป็นเพราะในหลายๆครั้ง โฆษณาที่ขึ้นมาอาจจะไม่ได้ตรงใจกับเราด้วย เราจึงเลื่อนผ่านไปโดยไม่ใยดี นั่นเอง</p><p>แต่เรามักจะจำโฆษณาที่เราสนใจได้ใช่ไหมละ เช่น ถ้าเรากำลังอยากจะซื้อจักรยาน วันหนึ่งมีโฆษณาจักรยานเขามา เราก็มักจะจำมันได้</p><p>เช่นเดียวกันกับข้อดี ของ Contextual Marketing หลายธุรกิจเอง ถ้าหากสามารถทำ Contextual Marketing ได้ จะทำให้เราสามารถส่ง offer ให้กับกลุ่มลูกค้าของเราได้ตรงจุดมากขึ้น</p><h4><strong>Contextual marketing</strong></h4><p>ความหมายโดยสรุปของ contexual marketing</p><blockquote><em>A system that knows the </em><strong><em>context</em></strong><em> i.e, where I am, what am I trying to do, what’s my interest level, state of mind, state of emotion etc., and sends a </em><strong><em>relevant </em></strong><em>message, that is going to resonate with me at that </em><strong><em>point in time</em></strong><em>.</em></blockquote><p>ถ้าเรามองกันในสายงาน Data Science จะเห็นได้ชัดเลยว่ามีความเกี่ยวข้องกันอย่างมาก เนื่องจากหลายๆบริษัทก็ต้องการจะคิดให้ออกว่า ลูกค้าของเราต้องการอะไร เพื่อที่จะได้นำเสนอให้แก่ลูกค้าของเราได้อย่างตรงจุด</p><p>อีกหนึ่งคำสั้นๆ ของการทำ Contextual Marketing</p><p><strong><em>“Market less, and more effectively”</em></strong></p><p>การทำ contexual marketing ที่ดี จะทำให้เราสามารถลด budget ได้ ในขณะเดียวกันก็สามาถเพิ่มยอดขายสินค้าได้มากขึ้นด้วย</p><p><strong>องค์ประกอบของ Context</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*jaMKDFsMr9AV0IDOZFJ2aA.png" /></figure><p>ประกอบไปด้วย 3 ส่วน</p><ol><li>Real-time events เหตุการณ์ที่เกิดขึ้น ที่จะเป็นตัว trigger เช่น เราเดินผ่านร้านอาหาร, เราเปิดมือถือ, เรากำลังเติมเงินในมือถือ เป็นต้น</li><li>States เป็นเหตุการสั้นๆ เช่น เรากำลังดูโทรทัศน์, เรากำลังหิวข้าว เป็นต้น</li><li>Identity เหตุการณ์ระยะยาว เช่น อายุ, life style, เพศ ,ที่อยู่อาศัย หรืออาจพูดง่ายๆว่า เป็นการบอกตัวตนของลูกค้า</li></ol><p>องค์ประกอบสามสิ่งนี้เมื่อรวมกัน เราจะต้องพยายามจับคู่ Context กับ Inventory ของเราให้ได้</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/760/1*BvRcgI9Ql4672X4x-ZzZjQ.png" /></figure><p>พูดง่ายๆ ก็คือ ถ้าเรามี Context แล้ว เราจะสามารถรู้ได้ว่า ลูกค้าของเราคนนี้เนี่ยมีลักษณะเฉพาะตัวเป็นอย่างไร แล้วตอนนี้มีเหตุการณ์อะไร เขากำลังอยู่ใน states อะไร ซึ่งเมื่อนำไปผ่านกระบวนการทาง Machine Learning เราก็จะมองสิ่งเหล่านี้เป็น features เพื่อนำไปทำนายหาว่า ลูกค้าคนนี้เนี่ย ควรจะได้รับ Product ใดของเรา ซึ่งข้อดีของมันก็คือ เนื่องจากมันทำจาก Model ทางคณิตศาสตร์ มันจะสามารถคำนวนหา % ในการที่จะตอบรับได้ด้วย ดังนั้นเราก็จะสามารถเลือกได้แล้วว่า offer ชนิดใดเหมาะกับลูกค้าคนใดของเรา</p><p>คำถามต่อไปคือ แล้วเราวัดผลอย่างไร รู้ได้อย่างไรว่า การทำ contextual marketing มันดีจริงๆ???</p><p>ลองมาดูตัวอย่างง่ายๆกัน</p><p>สมมติว่าเราต้องการขายมือถือราคา 1000 บาท ให้กับลูกค้าของเราที่มีทั้งหมด 10000 คน</p><p><strong>ถ้าเป็นกรณีแรกที่เราส่งให้ลูกค้าทั้งหมดที่เรามี</strong></p><p>สมมติว่ามีคน click ทั้งหมด 5000 คน &gt;&gt;&gt; click rate = 50%</p><p>ขณะเดียวกันสมมติว่ามีคนซื้อจริงๆ 500 คน &gt;&gt;&gt; conversion rate = 5%</p><p>ขณะเดียวกันได้กำไร 10 บาท/conversion</p><p>ซึ่งเราจะต้องเสียข้อความที่ส่งทั้งหมด ข้อความละ 1 บาท</p><p><strong>สรุป</strong></p><p>ต้นทุนทั้งหมด 10000 บาท</p><p>รายได้ทั้งหมด 500 * 10 = 5000 บาท</p><p>สุดท้ายบริษัทขาดทุนทั้งหมด 5000 บาท (แต่ขายได้ 500 เครื่องนะ)</p><p><strong>กรณีที่สองทำ Segmented marketing</strong></p><p>เหลือกลุ่มลูกค้าที่อยากซื้อมือถือ 5000 คน</p><p>สมมติว่ามีคน click ทั้งหมด 3000 คน &gt;&gt;&gt; click rate = 60%</p><p>มีคนซื้อจริงๆ 400 คน &gt;&gt;&gt; conversion rate = 8%</p><p><strong>สรุป</strong></p><p>ต้นทุนทั้งหมด 5000 บาท</p><p>รายได้ทั้งหมด 400 * 10 = 4000 บาท</p><p>สุดท้ายบริษัทขาดทุน 1000 บาท</p><p><strong>กรณีสุดท้ายทำในระดับ contextual marketing เลย</strong></p><p>เหลือกลุ่มลูกค้าที่เราคิดว่าจะซื้อแน่ๆ 1000 คน</p><p>สมมติว่ามีคน click ทั้งหมด 800 คน &gt;&gt;&gt; click rate = 80%</p><p>มีคนซื้อจริง 400 คน &gt;&gt;&gt; conversion rate = 40%</p><p><strong>สรุป</strong></p><p>ต้นทุนทั้งหมด 1000 บาท</p><p>รายได้ทั้งหมด 400 * 10 = 4000 บาท</p><p>สุดท้ายบริษัทขาดทุน 3000 บาท</p><p>เห็นไหมครับว่า ในกรณีแรกขายได้มากกว่า แต่กลับไม่ได้ทำมูลค่าให้กับบริษัทเลย ขณะที่การทำ Contextual Marketing นั้น สามารถลดทั้ง cost ของค่าใช้จ่ายได้</p><p>ไม่เพียงแต่สามารถวิเคราะห์หาลูกค้าที่เหมาะสมได้ แต่การทำ Contexual Marketing ยังทำให้เราสามารถ optimize ภาระค่าใช้จ่ายได้เหมาะสมอีกด้วย</p><p>พูดถึงเรื่อง Contextual Marketing มาอย่างยืดยาวววววว</p><p>แล้ว Contextual Marketing ทำอย่างไรละ???</p><p>สำหรับหัวข้อนี้ ทาง บอทน้อย มองว่า Chatbot เป็น contextual marketing อย่างหนึ่งได้</p><h4>Chatbot</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/746/1*X58MVejQGUHiXs0tZqRcVw.png" /></figure><p>Chatbot มีหลักการทำงานที่ตอบโจทย์ contextual marketing เป็นอย่างมาก เนื่องจากเราสามารถเก็บข้อมูลของลูกค้าแต่ละคน เช่น คำถาม-คำตอบที่ลูกค้าแต่ละคนส่งมา ประกอบกับข้อมูลพื้นฐานของลูกค้า ก็สามารถนำข้อมูลเหล่านี้มาเป็น features ในการทำนายหา Inventory ที่เหมาะสมให้กับลูกค้าได้</p><p>ส่วน Chatbot ของ Botnoi ทำยังไงนั้น</p><p>.</p><p>.</p><p>.</p><p>เราขอพอแค่นี้ก่อนดีกว่า ทำไมนะหรอ???</p><p>ก็เพราะเรามี Class Botnoi Chatbot School อยู่นะสิ ไว้ไปอ่านบทความวิธีการทำ Chatbot ในแบบ Botnoi กันที่บทความต่อไปกันต่อเลยครับ (ขายของให้บอทน้อยยาวๆ 555 )</p><p>ไว้พบกันใหม่สัปดาห์หน้าครับ</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c39fc4778ffb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Data Science Essential week5]]></title>
            <link>https://medium.com/@petchakritskopinyopawasutthi/data-science-essential-week5-ebfdc50066db?source=rss-2ead48431874------2</link>
            <guid isPermaLink="false">https://medium.com/p/ebfdc50066db</guid>
            <dc:creator><![CDATA[Petchakrit Pinyopawasutthi]]></dc:creator>
            <pubDate>Thu, 01 Oct 2020 06:34:35 GMT</pubDate>
            <atom:updated>2020-10-01T09:26:07.808Z</atom:updated>
            <content:encoded><![CDATA[<h3>Data Science Essential Week5</h3><p>มารอบนี้เราจะมากันในหัวเรื่อง Customer Segmentation</p><p>ก่อนจะไปศึกษาเรื่อง Customer Segmentation ขอทบทวนความรู้ในสมัยที่เราเรียนเรื่อง Machine Learning กันสักหน่อย</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/571/1*aDLtjL5DY0Dvc6EvbsAPhQ.png" /></figure><p>ในสัปดาห์ที่ 2 เราเคยศึกษาเรื่อง Machine Learning ไปแล้วได้แนะนำในหัวข้อ</p><h3>Supervised Learning</h3><p>กระบวนการเรียนรู้แบบมีผู้สอน</p><h3>Reinforcement Learning</h3><p>กระบวนการเรียนรู้แบบเสริม</p><p>มาในสัปดาห์นี้เราจะขอแนะนำอีกหนึ่งหัวข้อภายใต้ Machine Learning นั่นก็คือ</p><h3>Unsupervised Learning</h3><p>กระบวนการเรียนรู้แบบไม่มีผู้สอน เช่น การแบ่งกลุ่มลูกค้า การแบ่งกลุ่มสินค้า แบ่งกลุ่มนักเรียนตอนที่สมัคร DSE</p><p>ถามว่า แตกต่างกับ กระบวนการเรียนรู้แบบมีผู้สอนอย่างไร</p><p>สรุปสั้นๆอย่างง่าย</p><p><strong>มี Feature แต่ ไม่มี Label</strong></p><p>Machine จะทำการหา Label ให้เรา โดยอาศัยความคล้ายกันของ Feature <br>โดยใช้วิธีหาค่าความห่างที่น้อยที่สุดจากจุด Centroid หรือใกล้กันมากที่สุดนั้นเอง<br>ความห่างจะวัดจาก Euclidean distance</p><p>วิธีที่ได้รับความนิยมเป็นอย่างมากในกระบวนการเรียนรู้แบบไม่มีผู้สอนได้แก่ Clustering</p><p>Clustering ถือได้ว่าเป็นศาสตร์แขนงหนึ่งที่มีสำคัญ ในสายงานของ Data science เพราะสามารถนำไปประยุกต์ใช้ได้หลากหลาย เช่น การจัดกลุ่มลูกค้า การลดขนาดของข้อมูล การลดจำนวนสีในรูปภาพ เป็นต้น</p><p>Clustering จัดเป็น Machine learning ประเภท Unsupervised ก็คือสามารถทำนายผลลัพธ์ได้ ตัวอย่างเช่น ถ้าเราต้องการทราบว่า ลูกค้าที่มาซื้อสินค้าในซุปเปอร์ ฯ มีลูกค้าประเภทไหนบ้าง โมเดลไม่จำเป็นต้องรู้ว่า การแบ่งกลุ่มลูกค้า ต้องแบ่งอย่างไร แต่โมเดล จะทำการแบ่งกลุ่มเอง โดยอาศัยข้อมูลที่ได้บันทึกไว้ และ Data Scientist หรือฝ่ายการตลาด อาจจะเป็นผู้กำหนดจำนวนกลุ่ม ซึ่งได้มาจาก การศึกษาและวิเคราะห์ข้อมูลในอดีต</p><p><strong>Customer Segmentation</strong></p><p>คือ การแบ่งกลุ่มลูกค้าเป็นกลุ่มย่อย ที่สมาชิกมีคุณลักษณะคล้าย ๆ กัน Customer Segmentation เป็นเครื่องมีอสำคัญ ที่นักการตลาดใช้ในการระบุความต้องการของกลุ่มลูกค้า ที่ถูกมองข้ามไป ยังไม่ได้รับการตอบสนอง การใช้ข้อมูลเหล่านี้ทำให้องค์กรธุรกิจสามารถเอาชนะคู่แข่ง ด้วยการพัฒนาสินค้า และบริการพิเศษ ที่ตอบสนองลูกค้าเฉพาะกลุ่ม</p><p>สำหรับหัวข้อในวันนี้ขอยกตัวอย่างเป็น K-mean Clustering</p><p><strong>K-means Clustering</strong></p><p>ประกอบด้วย 3 ขั้นตอนง่ายๆ</p><p>1. Random Centroid</p><p>2. Assign Membership</p><p>3. Update Centroid</p><p>หลายคนอาจจะยังไม่เข้าใจ เราจะนำภาพประกอบมาให้ดูกันตามด้านล่าง</p><p><strong>ขั้นตอนที่ 1</strong> เราทำการสุ่มตำแหน่งใดก็ได้ มาเป็น centroid ของกลุ่ม จำนวน K จุด (ขึ้นอยู่กับว่า เราจะเป็นกี่กลุ่ม จึงเป็นที่มาของชื่อ K-means) จากตัวอย่างขอให้ K=2</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/543/1*Pwh8-Aj4NPGPWSxi87MzGA.png" /></figure><p><strong>ขั้นตอนที่ 2 </strong>ทำการ Assign กลุ่มให้แต่ละ point</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/256/1*FldhjMKBjx0Qcn2CelIgXw.png" /></figure><p>หลายคนอาจจะเริ่มมีคำถามว่า แล้วเรา Assign อย่างไรว่า จุดไหนคือกลุ่มไหน</p><p>แน่นอนว่าต้องมีอีกหนึ่งสิ่งที่เราต้องพิจารณา นั่นคือระยะห่างระหว่างจุดกับ Centroid</p><p>ซึ่งเราจะ Assign ให้จุดๆ นั้น อยู่ในกลุ่มที่ใกล้กับ Centroid นั้นๆ มากที่สุด</p><p>โดยเราพิจารณาจาก Euclidean Distance ตามสูตรเลขสมัยมัธยมเลยจ้าาาา ไปขุดกันมาหน่อยนะ อิอิ</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/538/1*vv1o9iyDVzYzQz9l3975Yw.png" /></figure><p><strong>ขั้นตอนที่ 3</strong> เราก็ทำการ Update Centroid ในชุดข้อมูลใหม่ ให้ Centroid ใหม่เป็นศูนย์กลางของกลุ่ม</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/541/1*4HwaxvTv2FxXopW0-fNkbw.png" /></figure><p>ทำซ้ำข้อ 1–3 ไปเรื่อยๆ จนลู่เข้า ก็จะได้ภาพสุดท้ายเป็น</p><p>ง่ายมากเลยใช่ไหมหละ???</p><p>สำหรับสัปดาห์นี้ไม่มี Mini Project นะจ้ะ อิอิ มีอีกทีเป็น Final Project เลย รอติดตามรับชมกันนะครับ</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ebfdc50066db" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Data Science Essential Week4]]></title>
            <link>https://medium.com/@petchakritskopinyopawasutthi/data-science-essential-week4-bd1e56020de9?source=rss-2ead48431874------2</link>
            <guid isPermaLink="false">https://medium.com/p/bd1e56020de9</guid>
            <dc:creator><![CDATA[Petchakrit Pinyopawasutthi]]></dc:creator>
            <pubDate>Thu, 01 Oct 2020 05:33:16 GMT</pubDate>
            <atom:updated>2020-10-01T05:33:16.392Z</atom:updated>
            <content:encoded><![CDATA[<p>ต้องขออภัยล่วงหน้าก่อนเลยนะครับที่ไม่ได้เขียนสรุปของ Week3 เนื่องจากการบ้านในรอบนี้ค่อนข้างยากขึ้นมากว่าสัปดาห์แรกพอสมควร จึงไม่มีเวลาอีกทั้งรอบนี้จะเป็น Prediction ที่เป็น coding เน้นๆ จึงอยากรวมทุกอย่างไว้ในการบ้านทีเดียวเลยครับสามารถติดตามอ่านได้ที่</p><p><a href="https://medium.com/botnoi-classroom/botnoiweeklyproject-ii-8ed8da17e753">BotnoiWeeklyProject II</a></p><p>มาถึงสัปดาห์ที่ 4 กันแล้ว คราวนี้มากันในหัวข้อเรื่อง</p><h3>Trend Forecasting</h3><p>ก่อนที่เราจะไปรู้จักกับ Trend Forecasting ขอแนะนำให้รู้จักกับคำว่า Time Series กันก่อน</p><p>Time Series คือ ข้อมูลที่มีการเปลี่ยนแปลงตามเวลา เช่น ราคาทองคำ ราคาหุ้น ราคาสินค้าเกษตร อัตราการแลกเปลี่ยนเงิน เป็นต้น</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/325/1*XPtVQGSEt9tuhTi8b--DXw.png" /></figure><p>ภาพตัวอย่างข้างบนแสดงให้เห็นกราฟราคาหุ้นย้อนหลัง 10 ปี จะเป็นว่าราคามีการเพิ่ม ลด ตามเวลาซึ่งก็เหมือนเป็นกราฟที่เปลี่ยนแปลงด้วยความสัมพันธ์บางอย่าง</p><p>มันจะดีแค่ไหนกัน ถ้าเราสามารถวิเคราะห์ความสัมพันธ์ของกราฟนี้ออกมาได้</p><p>เราก็จะประมาณราคาหุ้นในอนาคตได้นะสิ อิอิ :)</p><p><strong>รูปแบบ Time Series</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/477/1*QfAoiMtOTML6H472VETEew.png" /></figure><p>จะเห็นว่ากราฟซ้ายบนแสดงให้เห็นว่า ทุกๆ 6–10 ปี กราฟจะมี cycle ของมัน</p><p>กราฟทางด้านขวาบนแสดงให้เห็นว่า มันไม่มี cycle แต่มีแนวโน้มที่เป็นขาลง</p><p>กราฟซ้ายล่างแสดงให้เห็นว่ามีแนวโน้มขาขึ้นและมี seasonal</p><p>ในขณะที่กราฟขวาล่างไม่มีทั้ง Seasonal, trend, cycle</p><p>ถามว่า รู้สิ่งเหล่านี้แล้วดีอย่างไร???</p><p>แน่นอนว่าต้องมีประโยชน์เพราะเขาเชื่อกันว่า</p><p>กราฟที่เป็น Time Series หนึ่งๆ เนี่ย มันประกอบไปด้วย สามองค์ประกอบนั่นก็คือ Seasonal, Trend และ Residual</p><p>ซึ่งมีสองประเภท</p><p>1. Additive decomposition</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/115/1*NCyp5PwT1U0w0_k_DOmKyA.png" /></figure><p>2. Multiplicative decomposition</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/115/1*ahhBsiMV3CvBwevD10e3CQ.png" /></figure><p>เมื่อแตกองค์ประกอบออกมาจะเห็นเป็นภาพด้านล่าง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/489/1*1iRFPilLxaw1qBM5pSRxaw.png" /></figure><p>ภาพข้างบนเป็นการแตกองค์ประกอบแบบ Additive decomposition จะเห็นว่า กราฟรูปบนสุดเกิดจาก กราฟสามรูปด้านล่างบวกกันทั้งหมด</p><p>ไปต่อกันที่ Traditional Trend Forecasting</p><p>ในกระบวนการ Trend Forecasting เนี่ย ไม่ใช่ศาสตร์ใหม่แต่อย่างใด มันมีมานานแล้วแต่ทุกวันนี้ก็ยังมีการใช้กันอยู่</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/289/1*Ar5ouNy1dVoUt342YAZ1tA.png" /></figure><p>method แต่ละ method ก็จะมีสมมิฐานที่แตกต่างกันไป ขึ้นกับว่าเรามองว่าโมเดลของเรามีสมมติฐานที่เข้ากับแบบใด</p><p>สำหรับเวลาที่เหลือของคลาสจะเป็นการสอน coding และแสดงผลให้เห็น</p><p>ขออนุญาตนำผลสุดท้ายที่ได้มาให้ดูเลย</p><p>นี่คือกราฟหุ้น AOT ย้อนหลังตั้งแต่ปี 2016</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/550/1*3xAte0ISzWT_FUPl4xUtHw.png" /></figure><p>จากนั้นนำไปสู่กระบวนการ Prediction ที่เราได้เรียนกันไปใน class ที่แล้ว</p><p>โดยให้เลือกใช้วันที่ของราคาหุ้นเป็น feature เท่านั้น จะเห็นว่า</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/387/1*AYldN7-8d5nCueH_ipGagA.png" /></figure><p>กราฟเส้นสีส้มคือกราฟที่เราทำนายนะครับ พังกันเห็นๆ!!! 555</p><p>ถามว่าทำไม ก็เปนเพราะว่า วันที่ที่ใช้เป็น features อาจจะไม่ได้สำคัญมากพอที่จะบ่งบอกลักษณะของกราฟนี้</p><p>ดังนั้นจึงตอนเพิ่มขั้นตอนบางส่วนเข้ามานั่นก็คือ การทำ Feature Engineering</p><p>โดยเราจะเก็บราคาหุ้นของวันก่อนหน้ามาเป็นอีกหนึ่ง features ทีนี้มาดูผลกัน</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/401/1*-tl0WN8YyQRGbb5CLYbt5Q.png" /></figure><p>โอ้วโห!!! ดีกว่าเดิมเยอะเลยใช่ไหมละ สังเกตว่าช่วงหลังปี 2019 คือ ช่วงที่เราทำนาย แน่นอนว่าอาจจะไม่ได้แม่นมาก นั่นเป็นเพราะ features ที่สกัดมาอาจจะยังไม่ได้ดีงามมากนัก ยังมีอีกหลายวิธีที่ทำให้ได้ features สำคัญๆ หรือแม้กระทั่งเหตุการณ์สำคัญทั้งหลายก็อาจทำให้ราคาหุ้นเปลี่ยนไปอย่างกระทันหันก็ได้นะ อย่างว่า</p><p>การลงทุนคือความเสี่ยงนะครับ !!!</p><p>แต่อย่างน้อยเราก็ทราบได้ถึงแนวโน้มเบื้องต้นว่ากราฟของเราจะมีทิศทางไปในทางไหน ก็ทำให้สามารถวิเคราะห์เบื้องต้นได้บ้างว่า เมื่อไหร่ เราควรจะลงทุนกับมัน</p><p>จบไปแล้วครับกับทฤษฎีในสัปดาห์ที่ 4 กำลังสนุกเลย ยังครับ ความมันส์รอทุกท่านอยู่เสมอ ไปอ่านตามกันได้ที่</p><p><a href="https://medium.com/botnoi-classroom/trend-forecast-stock-price-for-set100-60b0d35c36d5">Trend forecast stock price for SET100</a></p><p>พบกันใหม่สัปดาห์หน้าครับ</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bd1e56020de9" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>