[ML] Decision Surface ของ Decision Tree และ Neural Network ต่างกันอย่างไร

ฺBlog นี้เป็นคำถามที่อยู่ดีๆก็นึกขึ้นมาได้ น่าจะเป็นตอนสมัยที่เรียน Machine Learning ตอน ป โท ก็เลยลองหาคำตอบเลยลองเขียนดูครับ ซึ่งผมของเอาภาพมาอธิบายดีกว่า โดยภาพผมเอามาจาก  โดยภาพนี้ ถ้าสังเกตุดีๆ พบว่า Decision Tree – มี Decision Surface ที่ขนานไปกับแกนเลย มองว่าเป็น Linear ก็ได้นะ ซึ่งถ้าลงลึกไปในตัวการทำงานของ Decision Tree มันมีลักษณะไปได้ 2 ทาง True / False ตาม Feature ที่สนใจ Neural Network – มี Decision Surface ที่มันจะลัดเลาะไปตามแกน และพบว่ามีคำตอบบางอัน ตอบไม่เหมือน Decision Tree ด้วยนะ แสดงว่ามันมี Error ซึ่งมันเป็นไปได้นะ ถ้าลองไปใช้ข้อมูล Sample Data ในตัว Rapidminer ดูพบว่า มันใช้ Hidden Layer ไม่ครับนะ สบายใจแล้ว ไม่รู้ว่าคำตอบจะถูกไหมหว่า งานระลึกชาติ  

2018 ปีแห่งงานที่ถาถม

วันที่ต้องหยุดพัก เพราะร่างกายรับไม่ไหว น่าจะเป็นนิยามทีดีที่สุดสำหรับปีนี้ครับ เพราะเป็นปีที่ใช้ร่างกายเยอะมากครับ Blog นี้น่าจะบ่นเรื่องานเยอะหน่อย เรื่องงาน จริงๆ แม้ว่าหลายคนระดับบนขององค์กรจะมองว่า Resource มันเพียงพอ ไม่ต้องโหมงาน แต่ผมว่างานหนักขึ้นตามหน้าที่ที่ได้รับครับ การจัดการโครงการ – ผมมองว่าล้มเหลวครับ Resource เดียวกัน ที่ต้องทำทีละ 1 Project กลายเป็นว่าต้องมาจับงาน 2-3 Project ทั้งทีจริงๆ มันมี โอกาศกันไม่ให้ Resource มันไม่ชนกันนะ Migrate VB6 เป็น .NET หลังจากเปลี่ยนคนทำมาหลายคนแล้ว และที่มีการประเมินไว่้ถึง 25-30 ปี ตอนนี้ ระบบสัก 20-30% ถูกยกขึ้นมาแล้วบน .NET ต้องดูต่อไปว่าสิ่งที่ผมวางไว้ มันจะก้าวไปได้ขนาดไหนครับต้องลุ้นแล้วว่าจะได้คนเข้ามาเพิ่มไหม เพราะถ้าไม่ได้ ผมว่าโครงการนี้คงล่ม เนื่องจากคนที่ทำหนีไปแล้ววว ฮ่าๆ   การจัดการโครงการปีนี้น่าจะ 90% ของวันทีทำงาน น่าจะเป็นวันที่กลับคนสุดท้ายขององค์กรครับ น่าจะมาจากหลายปัจจัย   ต้องมีสมาชิกที่ต้องดูแล แต่ติดตามมากขึ้น การวางแผนหลังการขาย ไม่รู้จะเรียกว่ายังไงนะ แต่ส่วนตัวคิดว่าตอนนี้นโยบายองค์กรเน้นหางานเข้ามากกว่า แต่การบำรุงรักษายังขาดไป อยากปิดโครงการ แต่ทำให้เกิดงานสัญญาใจ (End-Phase) ที่ทำฟรี ไม่เก็บเงิน แต่กรรมกรไอทีอย่างเราๆ ต้องดำเนินงานต่อไปให้เสร็จสิ้น แม้ว่าจะมีงานอื่นจ่อเข้ามารอแล้ว งานทำเงิน กับงานสัญญาใจ T__T เรียน ป โท เป็นปีที่ยากลำบากมากครับ เพราะ งานบีบเข้ามาจนเวลาที่ให้กับการเรียนต้องลดลง สุดท้ายงานก็กระทบกับการเรียนจนได้ และผมมีปัญหาสุขภาพด้วย ทำให้ต้องเลือกงานก่อน และทำ Thesis ในวันอาทิตย์เพียงวันเดียว เสียค่าเทอมของเทอมนี้ไปฟรี โดยมีส่วนนึงจากการจัดการเวลาของโครงการที่ผิดพลาด สุขภาพ จากงานที่หนัก แล้วสุขภาพก็แย่ลงครับ ……………… อาการที่แสดงออกมี ดังนี้ อ่อนเพลีย แขนขวาชา มือเจ็บ จนต้องเปลี่ยนมาใช้ Ergonomic Mouse แทนครับ น้ำหนักขึ้นมา…

[WIN10] ปรับให้ Standard User สามารถแก้ไขวันที่ไดั

สำหรับ Blog นี้ พอดี ระหว่างพัฒนาระบบใหม่ขึ้นมา ทาง BA อยากจะลองแก้ไขวันที่ของ DB Server เพื่อทดสอบการทำงานของ Application ครับ โดยการจะแก้ไขวันที่ได้ มีเงื่อนไข ดังนี้ Windows ต้องเป็นของแท้ Windows ต้องมี Patch Update เกือบล่าสุด  และสุดท้าย User ที่ใช้งานต้องมีสิทธิ์ด้วยครับ  สำหรับหัวข้อสุดท้าย “สุดท้าย User ที่ใช้งานต้องมีสิทธิ์ด้วยครับ” ถ้าจะเพิ่ม User สามารถทำได้ โดยมีขั้นตอนสั้นๆ ดังนี้ครับ WIN + Q จากนั้นพิมพ์ gpedit.msc เพื่อเปิดหน้าจอ Group Policy Editor ครับ เข้าไปตาม Path Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignments หาหัวข้อ Change the system time จากนั้นเพิ่ม User ที่ต้องการ แล้วกด OK ครับ Restart เครื่องอีกครั้งครับ จบไปแล้วกับอีก Blog ที่หาเวลามาเขียนยากมากก งานเยอะ มา 8 โมง กลับอีกที่ ก็ 5 ทุ่ม T___T

Design Technique for Enterprise Transaction Design

สรุปแนวคิดสำหรับการออกแบบระบบให้ระบบขนาดใหญ่ (Enterprise) และรองรับข้อมูลธุรกรรม(Transaction) จำนวนมาก โดยต้องการให้ขยายระบบ(Scalability) ได้ในอนาคตครับ เลือกรูปแบบ Data Modeling – Transaction – ORM vs ER – พวก Sensitive Data จัดการอย่างไร – Data distribution / Data Centralization เลือกรูปแบบ Architectural Patterns การเลือก Architecture ต้องดูจาก – Resource Handings (POSA-3) ตรงนี้จะเห็นว่า กล่องสีๆ พวก Performance / Scalability คือ พวก Quality Attribute โดยการเอา Pattern (กรอบประ) แต่ละอันมาช่วยเสริม อันไหน เช่น – Resource Management (POSA-2) มีหลายอันเลยครับ ที่มาช่วยในเรื่องต่างๆ Service Access and Configuration Event Handling Synchronization Concurrency LAST UPDATE: 2022-10 Reference

[DB2] SQL30082N Security processing failed with reason “1” (“PASSWORD EXPIRED”). SQLSTATE=08001

IBM DB2

ใช้ DB2 บน Docker มา 7-8 เดือน วันนี้พี่ในทีมบอกว่า เฮ้ยยย Database เป็นอะไร Login เข้าไม่ได้ครับ โดย Error Message คือ SQL30082N Security processing failed with reason “1” (“PASSWORD EXPIRED”).SQLSTATE=08001 ก่อนอื่นมาดูกันก่อนครับ มันเป็นที่ DB2 หรือป่าว ? คำตอบไม่เกี่ยวกับ DB2 เลยครับ เพราะ ตัว DB2 ไม่ได้จดจำ Username หรือ Password ของ Database เลยครับ สิ่งที่ DB2 ทำ คือ เชื่อใน OS ครับ เอาง่ายๆ DB2 ฝากหน้าที่การตรวจสอบตัวตนให้ใช้งานของ OS จากงานข้างต้นแสดงว่าการแก้ปัญหาไม่ได้มาจาก DB2 ครับ ต้องไปจัดการสิทธิของ User ใน OS ครับ อย่างผมใช้ CentOS ใน Docker IBM DB2 ครับ โดยคำสั่งที่ใช้ในการเปลี่ยน Password Expire ของ CentOS มี ดังนี้ครับ แบบที่ 1 : กำหนดไม่ให้ Password Expire เลยครับ – เหมาะสำหรับเครื่อง Development ครับ คำสั่ง  chage -m 0 -M 99999 -I -1 -E -1 <<username>> ตัวอย่าง  chage -m…

[CUSE] ในที่สุดก็แก้ Propasal จาก EThesis มาเป็น IThesis สำเร็จ

งานเยอะ แต่ทรัพย์จางครับ หลังจากทำงานปั่นๆ เพื่อให้มี Product จริงตามที่ Marketing เสนอขายไว้ในช่วงเสาร์-อาทิตย์ อันยาวนานคราวนี้มีเวลามาส่งไฟล์ Propasal ของ Thesis สักทีครับ โดยผมได้ทำเอกสารไว้ในระบบ Ethesis แล้วแหละ แต่พอ Migrate มาเป็น IThesis มันหายครับ จากวันนี้ 2018-11-30 สู้ต่อไปอีกเทอมครับ หวังว่าความเยอะของงานจะลดลงครับ วันที่ต้องหยุดพักเพราะร่างกายรับไม่ไหววันที่ต้องเจ็บใจจนแอบไปสะอื้นกี่ครั้ง

[WINDOWS] กำหนด Password ของ User ให้เป็น Never Expire

Microsoft Windows

หลังจากที่ได้ทำงานที่ท้าทายชิ้นนึง โดยมีเงื่อนไขของระบบว่าต้องเป็น Windows Server แต่งานชิ้นนี้ เป็นงานที่ได้ใช้องค์ความรู้ที่ได้เรียนมาตอนเรียนปริญญาโท ด้าน SE หมดเลยครับ แต่งานกินเวลาทำ Thesis ไปเช่นกัน งอแงมาพอและ มาเริ่มเลยดีกว่า เนื่องจากระบบที่ใช้เป็น Windows Server และด้วยสภาพ Environment ของ Dev เลยไม่จำเป็นต้องกำหนดกฏเยอะแยะด้าน Security ครับ โดยการกำหนดอายุของรหัสผ่านก็เป็นหนึ่งในประเด็นที่ฝั่ง Dev ของมองข้ามไปก่อนครับ โดยสำหรับ OS ตระกูล Windows มีวิธีการ ดังนี้ครับ ใช้ Command เลย มันเร็วดีครับ จากคำสั่ง wmic ครับ รูปแบบคำสั่ง wmic useraccount where “Name='[USERNAME]'” set PasswordExpires=false ตัวอย่าง wmic useraccount where “Name=’Administrator'” set PasswordExpires=false หลังจากที่ลองเขียนคำสั่งไปแล้ว เราต้องตรวจสอบผลจากคำสั่ง net  ครับ รูปแบบคำสั่ง net user [USERNAME] ตัวอย่าง net user Administrator ลดความยุ่งของทีม Dev ไปแล้ว แต่ตอนไป Implement จริง ให้ทำตาม Policy นะครับ เดี๋ยวจะชื่อดังโดยไม่รู้ตัว ^___^

[ENDNOTE] แทรกรายการอ้างอิงในไฟล์ MS Word

หลังจากติดงานที่ทำวันเสาร์ อาทิตย์มาตลอด ตอนนี้ได้เวลามาทำให้มันเสร็จสมบูรณ์สักทีกับระบบ IThesis ที่เปลี่ยนมาจาก EThesis ครับ มาเติมเต็มรายการอ้างอิงในไฟล์ MS Word กันครีบ สิ่งที่ต้องมี รายการข้อมูลอ้างอิง ต้องทำใน EndNote ให้เรียบร้อย ไฟล์ MS Word ที่มีข้อมูลเรียบร้อยแล้ว มาลุยกันเลยครับ เปิดไฟล์ Word วาง Cursor ไว้ในจุดที่ต้องการแทรกรายการอ้างอิง แทรกรายการอ้างอิง ไปที่ EndNote เลือกรายการอ้างอิง จากนั้นเลือก Insert Citation(s) หรือ จะไปที่ Word แล้วเลือก Insert Citation(s) กลับมาดูที่ MS Word กันครับ กรณีที่ต้องการแทรก Reference หลายๆอัน เช่น รายการที่ 5-10 และ 12-20 ทำตามขั้นตอนเดิมเลย แล้วเลือก Reference หลายๆอันแทนครับ ในกรณีที่แทรก  Reference หลายๆอันแล้วในบบรรรณานุกรมลำดับเปลี่ยน สามารถจัดลำดับได้ โดยกำหนดใน “Edit & Manage Citation(s)”

Print A0 ลง A4 หลายๆแผ่นได้ โดยไม่ต้องง้อ Printer ขั้นเทพ

พอดีผมมี Term Project ของที่เรียน ป โท ครับ โดยต้องออกแบบระบบลง Blue Print ขนาดกระดาษ A0 ครับ ซึ่งผมได้ทำบน Draw.IO กับเพื่อนในกลุ่มครับ TIPS: ตอน Export รูป หรือ PDF จาก DRAW.IO ให้เลือก Zoom แบบ 375% ครับ ป้องกันภาพแตกครับ แต่่ถ้าตั้งค่ามากกว่านี้ภาพแตก-ระบบบั๊กครับ เมื่อได้ไฟล์รูปภาพ หรือ PDF ขนาดกระดาษ A0 แล้วต้องทำอย่างไรต่อหละ ถ้าเป็นไฟล์รูปภาพ ให้แปลงเป็น PDF ก่อนครับ Download Adobe Acrobat Reader มาครับ จากนั้นติดตั้งให้เรียบร้อยครับ เปิดไฟล์ PDF ขึ้นมาครับ ดังรูป ตอนกด Print เลือกแบบ Poster ครับ ดังรูป ขั้นที่ 1 : เลือก Property กำหนดค่าของ Printer ให้เรียบร้อย ขั้นที่ 2 : กำหนดขนาดกระดาษให้เรียบร้อย ในที่นี้ผมเลิอก A4 ครับ (หน้าจอนี้แล้วแต่เครื่อง Printer ของแต่ละค่ายนะครับ) ขั้นที่ 3 : กดปุ่ม Poster ครับ พบหน้ากระดาษ A0 ถูกแบ่งตาม A4 เรียบร้อยแล้วครับ ขั้นที่ 4 : กำหนดแนวของกระดาษ แนวตั้ง/แนวนอน ครับ ขั้นที่ 5 : ถ้า OK แล้ว กด Print…

[JAVA] Thread Pool ใน Java

ช่วงนี้งานเยอะครับ ผมได้รับมอบหมายงานให้ลองปรับระบบงานเดิม ให้มันรองรับงานได้มากขึ้น และหนึ่งในเทคนิคที่ผมเลือกใช้ การทำงานแบบ Asynchronous ครับ โดยการทำงานแบบนี้สิ่งคนสั่ง สั่งงานเสร็จปุ๊บ ไม่ต้องรอผลลัพธ์ครับ แล้วให้ระบบมันทำงานต่อไปจนเสร็จ และแจ้งค่อยแจ้งผลลัพธ์ให้ Client รับทราบครับ แล้ว ThreadPool มันเกี่ยวยังไงหละ เจ้า ThreadPool มันเป็นวิธีการนึงที่ช่วยในการจัดการกับ Resource ครับ ถ้าเป็นเมื่อก่อนเวลาเราจะแตกงานให้ใช้ CPU ของเครื่องให้มันคุ้มค่าสิ่งที่ทำกัน คือ การ New Thread แยกเลยครับ ตาม Code ตัวอย่างครับ ปล. Code นี้มีปัญหานะครับ Run ไปเรื่อยๆ จาก Code ในข้างต้น ถ้ามีงานสัก 100 ชิ้น และต้องการแตก Thread จะพบปัญหาของการไปเขียน Thread แยกเอง ถ้าไม่เชี่ยว หรือเชี่ยวแล้วอย่าทำครับ เพราะ ทำอะไรไว้ ต้องไปจัดการให้เรียบร้อยด้วยนะครับ เพราะ เราต้องการคุมเกม แต่ถ้าเกิด Exception ขึ้นมาแล้ว เราต้องจัดการกับ Thread ที่มีปัญหาเองนะครับ ไม่งั้นมันจะแอบกิน Resource ของระบบไปเรื่อยๆจน System Down ลงไปครับ หรือ  ถ้าเราต้องการควบคุมว่ามีแต่ 5 Thread เท่าที่นั้นสามารถทำงานได้พร้อมกัน โอ้ววต้องไปเขียน Semaphore กันวุ่นวายเลย พระเอกของเราครับ แนวคิดของ ThreadPool จึงเกิดขึ้นมาครับ เพื่อมาเป็นตัวช่วยในการจัดการงานทั้งหมดให้งาน หรือใช้ Resouce ได้คุ้มค่า เพราะในแนวคิดของการ Caching Thread ทำงานเดียวกัน แต่ทำไมเยอะแยะสร้างตามที่มันสามารถทำงานได้พร้อมกัน และเมื่อมันทำงานเสร็จ โดย Thread ที่ทำงานเสร็จแล้วก็จะกลับไปเป็นสถานะ Idle และรอการ Reuse หรือถูกทำลายไปครับ สำหรับใน Java มีตัว…