บทความ Security
ไม่ว่าจะ ข่าวสาร บทสัมภาษณ์ และ Digital Skill บนสื่อ
มีให้คุณได้อ่านบทความดี ๆ มากมายแล้วที่นี่
โดย: Kan Ouivirach
| Security
สร้าง Machine Learning โมเดลมาทำ Image Recognition
Image Recogniton คือความสามารถของโปรแกรมในการระบุได้ว่าวัตถุ สถานที่ ผู้คน หรือข้อความต่างๆ ในรูปภาพ ว่าคืออะไร อยู่ที่ไหน ใครเป็นใคร และข้อความนั้นเขียนว่าอะไรถ้าเราอยากจะลองสร้าง (traditional) Machine Learning โมเดลขึ้นมาสักตัวหนึ่งเอามาทำ Image Recognition เราต้องทำอย่างไรบ้างนะ? ปกติแล้วเวลานำข้อมูลเข้าไปสอนโมเดล ข้อมูลนั้นๆ จะอยู่ในรูปแบบ Tabular เนอะ คือแบ่งเป็น Column แต่ละ Column ก็จะมีค่าตัวเลขต่างๆ ทีนี้ถ้าเรามีข้อมูลเป็นรูปภาพล่ะ?ไม่ต้องคิดมากเลยครับ เราก็แปลงรูปให้เป็นข้อมูลแบบ Tabular เลย เช่นถ้ารูปขนาด 2x2 เราก็แปลงให้เป็น Vector ขนาด 1x4 ตามรูปข้างล่างนี้เลยครับแปลงรูป 2x2 ให้เป็น Vector ขนาด 1x4โดยเราจะเอาแถวที่ 2 เป็นต้นไป ขึ้นมาต่อด้านหลังของแถวที่ 1 ไปเรื่อยๆ ครับ เท่านี้เราก็จะมีข้อมูแบบ Tabular ที่ Represent รูป 1 รูปแล้วเรียบร้อย 🎉ถ้ารูปมีขนาดไม่เท่ากัน? วิธีแก้คือเราต้องทำให้ขนาดของรูปทุกรูปเท่ากันก่อนก็พอ ทีนี้ก็แล้วแต่ว่าเราจะ Crop รูป หรือ Resize รูปครับผมเรามาลองเล่นกันบ้างดีกว่า จะได้เข้าใจมากขึ้นครับ เราจะนำข้อมูล Optical Recognition of Handwritten Digits จากเว็บ UCI Machine Learning Repository มาสร้างโมเดลกันPhoto by Green Chameleon on Unsplashโหลดข้อมูลมาก่อนครับimport pandas as pddigits_train = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/optdigits.tra', header=None)digits_train.head()ข้อมูลที่ได้หน้าตาจะประมาณนี้ครับลักษณะข้อมูล Optical Recognition of Handwritten Digitsจะเห็นได้ว่า UCI ได้แปลงข้อมูลให้เรามาแล้ว แต่ถ้าเราจับข้อมูลมาเรียงกลับมาเป็นรูปขนาด 8x8 จะได้แบบนี้first_digit = digits_train.loc[0, :][:-1].values.reshape(8, 8)first_digitแปลงข้อมูล Tabular (Feature Vector) ให้กลับมาอยู่ในรูปขนาด 8x8ถ้าอยากเห็นเป็นรูปจริงๆ เราสามารถใช้ Matplotlib ช่วยได้ครับ%matplotlib inlineimport matplotlib.pyplot as pltplt.figure(1, figsize=(3, 3))plt.imshow(first_digit, cmap=plt.cm.gray_r, interpolation='nearest')plt.show()ใช้ Matplotlib ช่วยแสดงค่าจากอาเรย์ 8x8 ออกมาเป็นรูปภาพถึงแม้ว่าบทความนี้จะแปลงข้อมูลจาก Tabular เป็นรูปขนาด 8x8 แต่จริงๆ เราก็สามารถแปลงรูปขนาด 8x8 ให้อยู่ในรูปแบบของ Feature Vector ขนาด 1x64 ได้ไม่ยากครับ แปลงไปแปลงกลับไม่โกง 😝ทีนี้ขั้นตอนการสร้างโมเดล เราก็สามารถทำตามปกติได้เลยครับ เพราะข้อมูลอยู่ในรูปแบบของ Tabular แล้ว โค้ดทั้งหมดมีตามนี้เลยครับ 👇 (ใช้โมเดล SVM)import pandas as pdfrom sklearn import svmdigits_train = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/optdigits.tra', header=None)X_train = digits_train.drop([64], axis=1)y_train = digits_train[64]clf = svm.SVC()clf.fit(X_train, y_train)digits_test = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/optdigits.tes', header=None)X_test = digits_test.drop([64], axis=1)y_test = digits_test[64]y_pred_class = clf.predict(X_test)clf.score(X_test, y_test)เป็นอันเสร็จสิ้น ที่เหลือก็เป็นขั้นตอนการปรับให้โมเดลของเราเก่งขึ้นครับผม 😎
โดย: สุวิชา บัวคอม
| Security
Introduction to cryptography
คุณรู้ตัวหรือเปล่าว่าในชีวิตประจำวันคุณได้ใช้การเข้ารหัสโดยที่คุณไม่รู้ตัว หรืออาจจะรู้ตัวในบางเรื่องที่เราเข้าใจการทำงานของสิ่งนั้นแล้ว สาเหตุหลักที่ทำให้คุณไม่รู้ตัวว่าคุณได้ใช้การเข้ารหัสก็เพราะว่า ปัจจุบันมีสิ่งอำนวยความสะดวกมากมายโดยส่วนมากจะมาในรูปแบบของโปรแกรมประยุกต์ (Application) เช่น ตอนที่สมัครใช้งานระบบต่างๆบน application หรือ เว็บไซต์ (website) จะมีช่องให้กรอกรหัสผ่าน (password) เราก็ใส่รหัสผ่านของเราลงไปโดยไม่รู้เลยว่าปลายทางที่รับรหัสผ่านของเราไปเก็บจะมีการเข้ารหัสหรือไม่ ตอนที่เราส่งข้อความหาเพื่อนจริงๆแล้วมีหลายขั้นตอนมาก เริ่มจากที่เราสั่งงาน application ของเราให้ส่งข้อความไปหาเพื่อน ข้อความจะถูกส่งผ่านระบบ Internet ที่เราเชื่อมต่ออยู่ และเพื่อนของเราก็รับข้อความที่เราส่งโดยไม่รู้เลยว่าระหว่างทางที่ส่งมามีคนสามารถแอบอ่านข้อมูลของเราหรือไม่และข้อความของถูกเข้ารหัสไว้อย่างปลอดภัยหรือเปล่า ในบางครั้งเราก็อยากเก็บข้อมูลที่เป็นความลับไว้ในคอมพิวเตอร์ของเราไม่ให้คนอื่นมาเข้าถึงข้อมูลของเราได้ ถึงแม้ว่าขโมยเครื่องของเราไปแล้วแกะเอาฮาร์ดดิส (harddisk) ไปเปิดดูก็ตามถ้าเรารู้และเข้าใจการเข้ารหัสอย่างถูกวิธี เราก็เก็บข้อมูลลับหรือภาพลับไว้ในเครื่องเราได้อย่างสบายใจ ไม่ต้องกังวลอะไรตัวอย่างที่ยกมาด้านบนนี้กล่าวถึงการนำศาสตร์การเข้ารหัสไปช่วยในการทำให้ข้อมูล เป็นความลับ (confidentiality) นอกจากจะนำศาสตร์นี้ไปใช้ทำให้ข้อมูลเป็นความลับแล้วยังสามารถนำไปใช้ในเรื่องของความครบถ้วนสมบูรณ์ (integrity) ของข้อมูลเพื่อให้แน่ใจว่าข้อมูลไม่ถูกแก้ไขระหว่างทางที่ส่งมาหาเรา และการรับรองความถูกต้อง (authenticity) เพื่อยืนยันว่าข้อมูลที่เราได้รับมาเป็นของจริงที่ถูกส่งมาจากต้นทางตัวจริง ขอเกริ่นคร่าวๆไว้เท่านี้ ต่อไปจะเริ่มลงเนื้อหาเชิงวิชาการ

พบบทสัมภาษณ์ได้ที่นี่เร็ว ๆ นี้

พบDigital Skill บนสื่อ ได้ที่นี่เร็ว ๆ นี้

หมวดหมู่

พบหมวดหมู่ ได้ที่นี่เร็ว ๆ นี้

พบหมวดหมู่ ได้ที่นี่เร็ว ๆ นี้

Tags

พบคำสำคัญ ได้ที่นี่เร็ว ๆ นี้

พบคำสำคัญ ได้ที่นี่เร็ว ๆ นี้

พบคำสำคัญ ได้ที่นี่เร็ว ๆ นี้