Cr. [http://th.wikipedia.org]
โดยทั่วไปแล้วโครงสร้างเครือข่ายประสาทเทียมจะมีความสามารถในการเรียนรู้ข้อมูลต่างๆ ที่ป้อนให้กับระบบการเรียนรู้ ( Learning ) ซึ่งเป็นคุณลักษณะที่สำคัญของเครือข่ายประสาทเทียม ตัวเครือข่ายจะถูกฝึกสอนโดยการแสดงรูปแบบ (Pattern) ต่างๆ ที่ต้องการให้เครือยข่ายเรียนรู้ด้วยกฏการเรียนรู้ (Learning Rule) ซึ่งความสามารถนี้ทำให้เครือข่ายประสาทเทียมมีความแตกต่างไปจากโปรแกรมคอมพิวเตอร์ทั่วๆ ไป
เครือยข่ายประสาทเทียมจะทำการเก็บข้อมูลความรู้ (Knowledge) ในขั้นตอนการเรียนรู้ โดยการเก็บไว้ที่น้ำหนักประสาท (Synaptic Weights) ซึ่งโครงสร้างของตัวเซลล์ประสาท (Neurons) ในเครือข่ายประสาทเทียมนั้นมีรูปแบบมากมายหลายชนิด โครงสร้างดังกล่าวเป็นองค์ประกอบที่สำคัญของการเรียนรู้ของเครือข่ายที่ทำให้เกิดการปรับเปลี่ยนค่าน้ำหนักหระสาทที่แตกต่างกันออกไป ไม่ว่าจะเป็นจำนวนของเซลล์ประสาท กฏการเรียนรู้ เป็นต้น
Cr. [อาทิตย์ ศรีแก้ว , “หนังสือ ปัญญาเชิงคำนวณ พิมพ์ครั้งที่ 1” สาขาวิศวกรรมไฟฟ้า วิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีสุรนารี]
ดังนั้นจึงมีการประยุกต์ใช้งานเครือยข่ายประสาทเทียมสำหรับการสร้างแบบจำลองนี้ขึ้น เพื่อลดขั้นตอนทางคณิตศาสตร์ ลดความซับซ้อนของแบบจำลอง เป็นต้น การประยุกต์ใช้งานเครือข่ายประสาทเทียมสามารถอธิบายโครงสร้างอย่างคราว ๆ ได้ดังรูป
ในบทความนี้จะนำเสนอการเริ่มต้นการใช้งานของเครือข่ายประสาทเทียม โดยจะยกตัวอย่างการประมาณค่า sine โดยจะสมมุติว่าเราไม่รู้สมการ sine แต่รู้ค่าที่เป็น Input และ Output ของสมการ ดังนั้นเราจะประยกต์ใช้งานเครือข่ายประสาทเทียมเพื่อประมาณค่าของสมการ เครือข่ายประสาทเทียมมีโครงสร้างแบบหลายชั้น (Mulit - Layer Neural Network) และใช้กฏการเรียนรู้แบบแพร่กลับ (Back-propagation) และเขียนโปรแกรมการจำลองจากโรปแกรม Matlab และใช้ Neural Network Toolbox ที่อยู่ในโปรแกรม Matlab
จากรูป กราฟ sine ที่แสดงนี้จะเป็น output ของเครือขายประสาทเทียม โดยที่เครือข่ายระสาทเทียมมีโครงสร้างและคำสั่งดังนี้
net =
newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)
PR
R x 2 matrix of
min and max values for R input elements
Si
Size of ith
layer, for Nl layers
TFi
Transfer
function of ith layer (default = 'tansig')
BTF
Backpropagation
network training function (default = 'trainlm')
BLF
Backpropagation
weight/bias learning function (default = 'learngdm')
PF
Performance
function (default = 'mse')
ตัวอย่างโปรแกรม
Code for Matlab.
1. P =
0:0.01:22.5;
2. T =
sin(P);
3. net =
newff([0 22.5],[5 10 1],{'tansig' 'tansig' 'purelin'});
4. net.trainParam.epochs
= 500;
5. net.trainParam.goal
= 0.001;
6. net =
train(net,P,T);
7. Y =
sim(net,P);
8. plot(P,T,P,Y,'r')
โครงสร้างของเครือข่ายประสาทเทียม
- ตัวแปร P จะมีค่าตั้งแต่ 0-22.5 โดยแต่ละค่ามีแตกต่างกัน 0.01 ซึ่งจะกำหนดเป็น Input
- T เป็นค่าที่ได้จาก Function Sine ซึ่งจะกำหนดให้เป็น Output
- ตัวแปร net คือ แบบจำลองเครือข่ายประสาทเทียม
- จำนวน Layer = 3 Layer
- ค่าสูงสุด 22.5 , ค่าต่ำสุด 0
- จำนวน Node ของแต่ละ Layer 5 10 1
** หมายเหตุ จำนวน Node ของ Output จำเป็นต้องมีค่าเท่ากับ Output
- Transfer Function ของแต่ละ Layer tansig tansig purelin
- จำนวนรอบการคำนวน (Epochs) = 500 รอบ
- ค่า MSE ที่ต้องการให้มีค่าต่ำที่สุด = 0.001
- ตัวแปร Y เป็นค่า Output ที่ได้จาก เครือข่ายประสาทเทียม
ผลการสร้างแบบจำลองและประมาณค่าที่ได้จากเครือข่ายประสาทเทียมเมื่อนำมาเปรียบเทียบกับข้อมูลที่เป็น Output จาก Function Sine ได้ผลการทดสอบดังรูป
จากรูปกราฟเส้นสีน้ำเงินคือค่าที่ได้จาก Function Sine และเส้นสีแดงค่าค่าที่ได้จาก Neural Network จากกราฟจะเห็นได้ว่า ค่าที่ได้จาก Neural Network มีความใกล้เคียงกับค่าที่ใช้ในการฝึกสอน (ค่าที่ได้จาก Function Sine) แต่ก็ยังเกิดค่าที่ผิดพลาดเมื่อมี Amplitude เข้าใกล้ 1 และ -1 อันเนื่องจากการกระบวนการฝึกสอนและโครงสร้างของ Neural Network ซึ่งถ้าเป็นระบบที่มีขนาดของแบบจำลองที่ใหญ่ จำเป็นจะต้องพิจารณาพารามิเตอร์ต่าง ๆ เพื่อให้เกิดความเหมาะสมด้วย
จากตัวอย่างที่นำมาเสนอนี้แสดงให้เห็นว่า เครือข่ายประสาทเทียม (Neural Network) สามารถที่จะสร้างแบบจำลองที่ให้ค่า Output ใกล้เคียงกับข้อมูลจริง ซึ่งจากความสามารถในการประมาณค่านี้ทำให้เครือข่ายประสาทเทียมนิยมนำมาใช้งานสำหรับการสร้างแบบจำลองต่าง ๆ ที่ไม่อาจจะระบุลักษณะแบบจำลองทางคณิตาสาตร์ได้ และนอกเหนือจากนี้ยังนำการประยุกต์ใช้งานในรูปแบบอื่น ๆ อีกมากมาย ตัวอย่างเช่น โปแกรมจัดจำใบหน้า โปรแกรมอ่านป้ายเบียนยานพาหนะ เป็นต้น
ขอบคุณครับสำหรับบทความดีๆ
ตอบลบ