เครือข่ายประสาทรับรู้ตัวอักษรค. การรู้จำตัวอักษรตัวอักษร
ในระหว่างกระบวนการเรียนรู้ เครือข่ายจะสร้างการแมป P → C ไม่สามารถรับการแมปนี้ได้ทั้งหมด แต่เป็นไปได้ที่จะได้รับจำนวนคู่ตามอำเภอใจ ( พี → ค) เชื่อมต่อกันด้วยจอแสดงผล สำหรับเวกเตอร์ใดๆ พีที่อินพุตเราสามารถรับความน่าจะเป็นโดยประมาณของการเป็นสมาชิกคลาสที่เอาต์พุต
บ่อยครั้งปรากฎว่าส่วนประกอบของเวกเตอร์เอาท์พุตสามารถมีค่าน้อยกว่า 0 หรือมากกว่า 1 และเงื่อนไขที่สอง (1) เป็นเพียงที่น่าพอใจโดยประมาณเท่านั้น ความไม่ถูกต้องเป็นผลมาจากลักษณะอะนาล็อกของโครงข่ายประสาทเทียม ผลลัพธ์ส่วนใหญ่ที่ได้รับจากโครงข่ายประสาทเทียมนั้นไม่ถูกต้อง นอกจากนี้ เมื่อฝึกอบรมเครือข่าย เงื่อนไขที่ระบุที่กำหนดกับความน่าจะเป็นจะไม่ถูกนำเข้าโดยตรงในเครือข่าย แต่จะบรรจุอยู่ในชุดข้อมูลที่เครือข่ายได้รับการฝึกฝนโดยปริยาย นี่เป็นเหตุผลที่สองสำหรับผลลัพธ์ที่ไม่ถูกต้อง
มีวิธีอื่นในการทำให้เป็นทางการ
เราจะแสดงตัวอักษรในรูปแบบของภาพจุด (รูปที่)
ข้าว. - จุดภาพ.
เซลล์พิกเซลสีเข้มในภาพสอดคล้องกัน ฉันจ = 1 แสง - ฉันจ = 0 . ภารกิจคือการกำหนดตัวอักษรที่นำเสนอจากภาพ
มาสร้าง SME ด้วยกันเถอะ ฉันเอ็กซ์ เอ็นเจอินพุต โดยที่แต่ละอินพุตสอดคล้องกับหนึ่งพิกเซล: xk = ฉัน ฉัน ijความสว่างของพิกเซลจะเป็นส่วนประกอบของเวกเตอร์อินพุต
เป็นสัญญาณเอาท์พุต เราเลือกความน่าจะเป็นที่ภาพที่นำเสนอจะสอดคล้องกับตัวอักษรที่กำหนด:
เครือข่ายคำนวณผลลัพธ์:
ทางออกอยู่ที่ไหน ค 1 = 0.9 หมายความว่า รูปภาพของตัวอักษร "A" ปรากฏ และเครือข่ายมั่นใจ 90% ในเรื่องนี้ ค 2 = 0.1 - รูปภาพตรงกับตัวอักษร "B" โดยมีความน่าจะเป็น 10% เป็นต้น
มีวิธีอื่น: อินพุตเครือข่ายจะถูกเลือกในลักษณะเดียวกันและเอาต์พุตจะมีเพียงตัวเลขเดียวเท่านั้น มจดหมายนำเสนอ เครือข่ายเรียนรู้ที่จะให้ความหมาย มตามภาพที่นำเสนอ ฉัน:
(ฉันจ) → ม
ในกรณีนี้ข้อเสียคือตัวอักษรที่มีตัวเลขคล้ายกัน m แต่เป็นรูปภาพที่แตกต่างกัน อาจสับสนโดยเครือข่ายในระหว่างการจดจำ
โครงการนี้ไม่ได้อ้างว่าเป็นสถานที่แรกในโลกและไม่ถือเป็นคู่แข่ง FineReaderแต่ฉันหวังว่าแนวคิดในการจดจำรูปแบบอักขระโดยใช้คุณลักษณะออยเลอร์จะเป็นเรื่องใหม่
ความรู้เบื้องต้นเกี่ยวกับคุณลักษณะออยเลอร์ของภาพ
แนวคิดพื้นฐานคือคุณถ่ายภาพขาวดำ และสมมติว่า 0 คือพิกเซลสีขาว และ 1 คือพิกเซลสีดำ รูปภาพทั้งหมดจะเป็นเมทริกซ์ที่มีศูนย์และหนึ่ง ในกรณีนี้ ภาพขาวดำสามารถแสดงเป็นชุดของชิ้นส่วนที่มีขนาด 2 x 2 พิกเซล ชุดค่าผสมที่เป็นไปได้ทั้งหมดจะแสดงในรูป:
ในแต่ละภาพ รูปที่ 1, รูปที่ 2,... แสดงสี่เหลี่ยมสีแดงของขั้นตอนการนับในอัลกอริทึม ซึ่งภายในคือหนึ่งในแฟรกเมนต์ เอฟจากภาพด้านบน ในแต่ละขั้นตอน แต่ละส่วนจะถูกรวมเข้าด้วยกัน ทำให้เกิดเป็นภาพ ต้นฉบับเราได้รับเซตนี้: จากนี้ไปจะเรียกว่าคุณลักษณะออยเลอร์ของรูปภาพหรือชุดคุณลักษณะ
ความคิดเห็น:ในทางปฏิบัติ จะไม่ใช้ค่า F0 (สำหรับภาพต้นฉบับ ค่านี้คือ 8) เนื่องจากเป็นพื้นหลังของภาพ ดังนั้นจะใช้ 15 ค่า เริ่มตั้งแต่ F1 ถึง F15
คุณสมบัติของคุณลักษณะออยเลอร์ของรูปภาพ
- ค่าของชุดคุณลักษณะจะไม่ซ้ำกัน กล่าวคือ ไม่มีรูปภาพสองภาพที่มีลักษณะเฉพาะของออยเลอร์เหมือนกัน
- ไม่มีอัลกอริธึมสำหรับการแปลงจากชุดคุณลักษณะไปเป็นภาพต้นฉบับ วิธีเดียวคือการใช้กำลังดุร้าย
อัลกอริธึมการรู้จำข้อความคืออะไร?
แนวคิดของการรู้จำตัวอักษรคือเราคำนวณคุณลักษณะออยเลอร์ล่วงหน้าสำหรับอักขระทุกตัวในตัวอักษรของภาษาและเก็บไว้ในฐานความรู้ จากนั้นเราจะคำนวณคุณลักษณะออยเลอร์สำหรับส่วนของภาพที่ได้รับการยอมรับและค้นหาในฐานความรู้
ขั้นตอนการรับรู้:
- รูปภาพอาจเป็นได้ทั้งขาวดำหรือสี ดังนั้นขั้นตอนแรกคือการประมาณรูปภาพ นั่นคือจะได้ขาวดำจากรูปภาพนั้น
- เราส่งผ่านภาพทั้งหมดแบบพิกเซลต่อพิกเซลเพื่อค้นหาพิกเซลสีดำ เมื่อตรวจพบพิกเซลที่แรเงา การดำเนินการแบบเรียกซ้ำจะเริ่มขึ้นเพื่อค้นหาพิกเซลที่แรเงาทั้งหมดที่อยู่ติดกับพิกเซลที่พบและพิกเซลที่ตามมา เป็นผลให้เราจะได้รับส่วนของภาพซึ่งอาจเป็นได้ทั้งตัวละครหรือบางส่วนหรือ "ขยะ" ที่ควรทิ้ง
- หลังจากค้นหาส่วนที่ไม่เชื่อมโยงกันทั้งหมดของภาพแล้ว คุณลักษณะออยเลอร์จะถูกคำนวณสำหรับแต่ละส่วน
- จากนั้น เครื่องวิเคราะห์จะเริ่มทำงาน และพิจารณาแต่ละส่วนเพื่อพิจารณาว่าค่าของคุณลักษณะออยเลอร์นั้นอยู่ในฐานความรู้หรือไม่ หากเราพบคุณค่าเราจะพิจารณาว่าเป็นส่วนที่ได้รับการยอมรับของภาพ ไม่เช่นนั้นเราจะทิ้งไว้เพื่อการศึกษาต่อไป
- ส่วนที่ไม่รู้จักของรูปภาพนั้นต้องได้รับการวิเคราะห์ตามฮิวริสติก กล่าวคือ ฉันพยายามค้นหาค่าที่เหมาะสมที่สุดในฐานความรู้โดยพิจารณาจากคุณค่าของคุณลักษณะออยเลอร์ หากไม่สามารถค้นหาได้ ให้พยายาม "ติดกัน" ชิ้นส่วนใกล้เคียงและค้นหาผลลัพธ์ในฐานความรู้สำหรับชิ้นส่วนเหล่านั้น "การติดกาว" มีไว้เพื่ออะไร? ความจริงก็คือไม่ใช่ทุกตัวอักษรที่จะมีรูปภาพต่อเนื่องกันเพียงรูปเดียว เช่น "!" เครื่องหมายอัศเจรีย์ประกอบด้วย 2 ส่วน (แท่งและจุด) ดังนั้นก่อนที่จะค้นหาในฐานความรู้ คุณจะต้องคำนวณมูลค่ารวมของคุณลักษณะออยเลอร์จากทั้งสองส่วน หากแม้หลังจากติดกาวกับส่วนที่อยู่ติดกันแล้ว แต่ไม่พบผลลัพธ์ที่ยอมรับได้ เราก็ถือว่าแฟรกเมนต์นั้นเป็นขยะและข้ามไป
องค์ประกอบของระบบ:
- ฐานความรู้- ไฟล์หรือไฟล์ที่สร้างขึ้นโดยฉันหรือบุคคลอื่นซึ่งมีชุดอักขระที่มีลักษณะเฉพาะและจำเป็นสำหรับการจดจำ
- แกนกลาง- มีฟังก์ชันพื้นฐานที่ทำหน้าที่จดจำ
- เครื่องกำเนิดไฟฟ้า- โมดูลสำหรับการสร้างฐานความรู้
ClearType และการป้องกันนามแฝง
ดังนั้น ตามที่ป้อนเข้ามา เรามีภาพที่จดจำได้ และเป้าหมายคือการทำให้เป็นภาพขาวดำ เหมาะสำหรับการเริ่มกระบวนการจดจำ ดูเหมือนว่าสิ่งที่อาจง่ายกว่านี้ เรานับพิกเซลสีขาวทั้งหมดเป็น 0 และส่วนที่เหลือทั้งหมดเป็น 1 แต่ไม่ใช่ทุกอย่างจะง่ายนัก ข้อความบนรูปภาพสามารถป้องกันนามแฝงหรือไม่ใช่นามแฝงได้ อักขระที่ไม่เรียบจะดูเรียบเนียนและไม่มีมุม ในขณะที่อักขระที่ไม่เรียบจะดูบนจอภาพสมัยใหม่ที่มีพิกเซลมองเห็นได้ตามแนวเส้นชั้นความสูง ด้วยการถือกำเนิดของหน้าจอ LCD (ผลึกเหลว) ClearType (สำหรับ Windows) และการป้องกันนามแฝงประเภทอื่น ๆ ได้ถูกสร้างขึ้น ซึ่งใช้ประโยชน์จากคุณสมบัติของเมทริกซ์จอภาพ พิกเซลของรูปภาพข้อความจะเปลี่ยนสี หลังจากนั้นจะดู "นุ่มนวลขึ้น" มาก หากต้องการดูผลลัพธ์ของการปรับให้เรียบ คุณสามารถพิมพ์ตัวอักษร (หรือข้อความ) เช่น mspaintซูมเข้า และข้อความของคุณก็กลายเป็นโมเสกหลากสี
เกิดอะไรขึ้น?ทำไมเราถึงเห็นสัญลักษณ์ธรรมดาๆ ในระดับเล็กๆ? ดวงตาของเราหลอกลวงเราหรือเปล่า? ความจริงก็คือพิกเซลของจอภาพ LCD ไม่ได้ประกอบด้วยพิกเซลเดียวที่สามารถรับสีที่ต้องการได้ แต่มี 3 พิกเซลย่อย 3 สีซึ่งเพียงพอที่จะได้สีที่ต้องการ ดังนั้น เป้าหมายของ ClearType คือการได้รับข้อความที่ดูสบายตาที่สุดโดยใช้คุณสมบัติของเมทริกซ์ของจอภาพ LCD และสามารถทำได้โดยใช้การเรนเดอร์พิกเซลย่อย ใครก็ตามที่มี "แว่นขยาย" เพื่อการทดลอง สามารถขยายตำแหน่งใดๆ บนหน้าจอที่เปิดอยู่และดูเมทริกซ์ได้ดังภาพด้านล่าง
รูปนี้แสดงสี่เหลี่ยมจัตุรัสขนาด 3x3 พิกเซลของเมทริกซ์ LCD
ความสนใจ!คุณลักษณะนี้ทำให้การรับภาพขาวดำมีความซับซ้อนและส่งผลอย่างมากต่อผลลัพธ์ เนื่องจากไม่ได้ทำให้สามารถรับภาพเดียวกันได้เสมอไป ซึ่งเป็นคุณลักษณะของออยเลอร์ที่ถูกบันทึกไว้ในฐานความรู้ ดังนั้นความแตกต่างในภาพจึงบังคับให้มีการวิเคราะห์พฤติกรรมซึ่งอาจไม่ประสบความสำเร็จเสมอไป
เพื่อให้ได้ภาพขาวดำ
ฉันไม่พอใจกับคุณภาพของอัลกอริธึมการแปลงสีเป็นขาวดำที่พบในอินเทอร์เน็ต หลังจากการใช้งาน รูปภาพของตัวละครที่ถูกเรนเดอร์พิกเซลย่อยมีความกว้างแตกต่างกัน มีการแบ่งบรรทัดตัวอักษรและมีขยะที่ไม่สามารถเข้าใจได้ปรากฏขึ้น ด้วยเหตุนี้ ฉันจึงตัดสินใจได้ภาพขาวดำโดยการวิเคราะห์ความสว่างของพิกเซล พิกเซลทั้งหมดสว่างกว่า (มากกว่าค่า) 130 หน่วยถือเป็นสีดำ ส่วนที่เหลือเป็นสีขาว วิธีนี้ไม่เหมาะและยังนำไปสู่ผลลัพธ์ที่ไม่น่าพอใจหากความสว่างของข้อความเปลี่ยนไป แต่อย่างน้อยก็ได้รับภาพที่คล้ายกับค่าในฐานความรู้ การใช้งานสามารถดูได้ในคลาส LuminosityApproximator
ฐานความรู้
แนวคิดเริ่มแรกในการเติมฐานความรู้คือสำหรับตัวอักษรแต่ละตัวของภาษา ฉันจะคำนวณคุณลักษณะออยเลอร์ของภาพสัญลักษณ์ผลลัพธ์สำหรับแบบอักษร 140 แบบที่ติดตั้งบนคอมพิวเตอร์ของฉัน (C:\Windows\Fonts) ให้เพิ่มองค์ประกอบทั้งหมด ตัวเลือกสำหรับประเภทแบบอักษร (ปกติ เจ้าอ้วน, ตัวเอียง) และขนาดตั้งแต่ 8 ถึง 32 ดังนั้นจึงครอบคลุมรูปแบบตัวอักษรและฐานทั้งหมดหรือเกือบทั้งหมดจะกลายเป็นสากล แต่น่าเสียดายที่สิ่งนี้กลับกลายเป็นว่าไม่ดีเท่าที่ควร ด้วยเงื่อนไขเหล่านี้ นี่คือสิ่งที่ฉันได้รับ:
- ไฟล์ฐานความรู้มีขนาดค่อนข้างใหญ่ (ประมาณ 3 เมกะไบต์) สำหรับภาษารัสเซียและอังกฤษ แม้ว่าคุณสมบัติออยเลอร์จะถูกจัดเก็บเป็นสตริงธรรมดา 15 หลักและตัวไฟล์เองก็เป็นไฟล์บีบอัด (DeflateStream) ซึ่งจะถูกแตกไฟล์ในหน่วยความจำ
- ฉันใช้เวลาประมาณ 10 วินาทีในการดีซีเรียลไลซ์ฐานความรู้ ในเวลาเดียวกัน เวลาในการเปรียบเทียบชุดคุณลักษณะก็ประสบปัญหา ไม่สามารถค้นหาฟังก์ชันสำหรับคำนวณ GetHashCode() ได้ ดังนั้นฉันจึงต้องเปรียบเทียบทีละนิด และเมื่อเทียบกับฐานความรู้ 3-5 ฟอนต์ ระยะเวลาในการวิเคราะห์ข้อความด้วยฐานข้อมูล 140 ฟอนต์ เพิ่มขึ้น 30-50 เท่า ในเวลาเดียวกัน ชุดคุณลักษณะเดียวกันจะไม่ถูกบันทึกในฐานความรู้ แม้ว่าอักขระบางตัวในแบบอักษรที่แตกต่างกันอาจดูเหมือนกันและคล้ายกัน แม้ว่าจะมีแบบอักษรเช่น 20 และ 21 ก็ตาม
ดังนั้นฉันจึงต้องสร้างฐานความรู้ขนาดเล็กที่อยู่ภายในโมดูล Core และทำให้สามารถตรวจสอบการทำงานได้ มีปัญหาร้ายแรงมากในการกรอกฐานข้อมูล แบบอักษรบางแบบอาจไม่แสดงอักขระขนาดเล็กอย่างถูกต้อง สมมติว่าอักขระ "e" เมื่อแสดงผลเป็นฟอนต์ขนาด 8 ชื่อ "Franklin Gothic Medium" กลายเป็น:
และมีความคล้ายคลึงกับต้นฉบับเพียงเล็กน้อย ยิ่งกว่านั้น ถ้าคุณเพิ่มมันเข้าไปในฐานความรู้ ก็จะเป็นเช่นนี้ จะทำให้ผลลัพธ์ของฮิวริสติกแย่ลงอย่างมาก เนื่องจากการวิเคราะห์สัญลักษณ์ที่คล้ายกับสัญลักษณ์นี้จะทำให้เข้าใจผิด ดีสัญลักษณ์นี้ได้มาจากแบบอักษรที่แตกต่างกันสำหรับตัวอักษรที่แตกต่างกัน กระบวนการเติมฐานความรู้นั้นจำเป็นต้องได้รับการควบคุมเพื่อให้แต่ละภาพของสัญลักษณ์ได้รับการตรวจสอบโดยบุคคลก่อนบันทึกลงในฐานความรู้ว่าสอดคล้องกับตัวอักษรหรือไม่ แต่น่าเสียดายที่ฉันไม่มีพลังงานและเวลามากขนาดนั้น
อัลกอริธึมการค้นหาตัวอักษร
ฉันจะบอกทันทีว่าในตอนแรกฉันประเมินปัญหานี้ต่ำเกินไปในการค้นหาและลืมไปว่าสัญลักษณ์อาจประกอบด้วยหลายส่วน สำหรับฉันดูเหมือนว่าระหว่างการผ่านแบบพิกเซลต่อพิกเซล ฉันจะพบสัญลักษณ์ ค้นหาส่วนต่างๆ ของมัน (ถ้ามี) รวมเข้าด้วยกันและวิเคราะห์ รหัสผ่านปกติจะมีลักษณะดังนี้: ฉันค้นหาตัวอักษร "H" (ในฐานความรู้) และพิจารณาว่าอักขระทั้งหมดที่อยู่ใต้จุดบนและเหนือจุดล่างเป็นของบรรทัดปัจจุบัน และควรใช้นามแฝงร่วมกัน:
แต่นี่เป็นสถานการณ์ในอุดมคติ ในระหว่างการจดจำ ฉันต้องจัดการกับภาพที่ฉีกขาด ซึ่งนอกเหนือจากสิ่งอื่นใดแล้ว อาจมีขยะจำนวนมากอยู่ข้างๆ ข้อความ:
รูปภาพของคำว่า "ใช่" นี้จะพยายามอธิบายความซับซ้อนของการวิเคราะห์ เราจะถือว่านี่เป็นสตริงที่สมบูรณ์ แต่ b13 และ i6 เป็นเศษขยะอันเป็นผลมาจากการประมาณ อักขระ "y" ขาดช่วง และไม่มีอักขระตัวใดอยู่ในฐานความรู้เพื่อพูดด้วยความมั่นใจว่าเรากำลังจัดการกับบรรทัดข้อความตั้งแต่บรรทัด "c" ถึงบรรทัด "i" และความสูงของเส้นเป็นสิ่งสำคัญมากสำหรับเรา เนื่องจากการติดกาวเราจำเป็นต้องรู้ว่าชิ้นส่วนควร "ติดกาวเข้าด้วยกัน" และวิเคราะห์อย่างไร ท้ายที่สุดอาจมีสถานการณ์ที่เราเริ่มรวมอักขระจากสองสายโดยไม่ได้ตั้งใจและผลลัพธ์ของการจดจำดังกล่าวจะอยู่ไกลจากอุดมคติ
การวิเคราะห์พฤติกรรมในการวิเคราะห์ภาพ
ฮิวริสติกในการจดจำภาพคืออะไร?นี่คือกระบวนการที่ชุดคุณลักษณะที่ไม่ปรากฏในฐานความรู้ได้รับการยอมรับว่าเป็นตัวอักษรที่ถูกต้อง ฉันคิดมานานแล้วว่าจะดำเนินการวิเคราะห์อย่างไร และในที่สุดอัลกอริธึมที่ประสบความสำเร็จที่สุดก็กลายเป็นสิ่งนี้:
- ฉันพบชุดคุณลักษณะทั้งหมดในฐานความรู้ที่มีค่าจำนวนมากที่สุด แฟรกเมนต์ Fตรงกับภาพที่ได้รับการยอมรับ
- ต่อไป ฉันเลือกเฉพาะชุดคุณลักษณะเหล่านั้นซึ่งด้วยภาพที่ได้รับการยอมรับตามค่า F ที่ไม่เท่ากันของแฟรกเมนต์ ความแตกต่างจะไม่เกิน +- 1 หน่วย: -1< F < 1. И это все подсчитывается для каждой буквы алфавита.
- จากนั้นผมจะเจอสัญลักษณ์ที่มีจำนวนครั้งมากที่สุด เมื่อพิจารณาถึงผลลัพธ์ของการวิเคราะห์ฮิวริสติก
ตัวอย่างการใช้งานในภาษา C#
ตัวอย่างการเริ่มต้นของการจดจำรูปภาพ ตัวแปรผลลัพธ์จะมีข้อความ:
ตัวจดจำ var = TextRecognizer ใหม่ (คอนเทนเนอร์); รายงาน var = รู้จักจดจำ (รูปภาพ); // ข้อความดิบ. ผลลัพธ์ var = report.RawText();// รายการแฟรกเมนต์และสถานะการจดจำทั้งหมดสำหรับแต่ละรายการvar แฟรกเมนต์ = report.Symbols;
โครงการสาธิต ฉันเขียนเพื่อสาธิตการทำงานด้วยภาพดับบลิวพีเอฟ แอปพลิเคชัน. โดยเปิดตัวจากโครงการชื่อ “ Qocr.Application.Wpf
" ตัวอย่างของหน้าต่างพร้อมผลการจดจำอยู่ด้านล่าง:
- ในการจดจำภาพคุณจะต้อง: กด"ภาพใหม่"
- เลือกภาพสำหรับการจดจำ การใช้ ""คุณสามารถดูได้ว่าภาพใดจะถูกวิเคราะห์ หากคุณเห็นภาพคุณภาพต่ำมาก ก็อย่าคาดหวังผลลัพธ์ที่ดี เพื่อปรับปรุงผลลัพธ์ คุณสามารถลองเขียนภาพสีลงในตัวแปลงขาวดำด้วยตัวเอง
- การเลือกภาษา "ภาษา".
- คลิกรับรู้ "จำได้".
ตัวอย่างของการรู้จำข้อความภาษาอังกฤษ:
ให้เรามีหน้าจออยู่ตรงหน้าเรา แบ่งเป็น 12 เซลล์ 4 x 3 เซลล์ต่างๆ สะท้อนถึงความไม่ต่อเนื่องขององค์ประกอบภาพ เมื่อโฟกัสภาพ เซลล์จะสว่างหรือไม่ก็ตาม “ การส่องสว่าง” กำหนดค่าเดียวของขนาดของการกระตุ้น“ การไม่เปิดรับแสง” - ศูนย์ ดังนั้นตัวอักษร O จะกำหนดความสว่างของเซลล์ซึ่งกำหนดไว้ในรูปที่ 2.1 ตัวอักษร A จะส่องสว่างหน้าจอ ดังแสดงในรูปที่ 2.2
จะต้องทำอย่างไรเพื่อให้อุปกรณ์บางตัวที่เรากำลังออกแบบสามารถบอกได้ว่าเป็นตัวอักษรอะไร?
แน่นอนว่าสัญญาณกระตุ้นทั้งหมดของเซลล์หน้าจอที่ส่องสว่างด้วยตัวอักษร O จะต้องถูกส่งไปยังตัวเชื่อมต่อซึ่งใช้วงจร I สัญญาณเดียวที่เอาต์พุตของตัวเชื่อมต่อดังแสดงในรูปที่ 2.1 จะถูกสร้างขึ้น ถ้าหากเมื่อเซลล์ทั้งหมดของหน้าจอที่วางภาพไว้จะมีตัวอักษร O เรืองแสง การมีอยู่ของสัญญาณเดียวที่เอาต์พุตของตัวเชื่อมต่อจะกำหนดคำตอบ: "นี่คือตัวอักษร O"
ข้าว. 2.1.การสอนตัวอักษร "O"
ข้าว. 2.2.การสอนตัวอักษร "A"
ต้องทำเช่นเดียวกันกับตัวอักษร A
มาทำเครื่องหมายแต่ละเซลล์ของหน้าจอด้วยพิกัดของมัน จากนั้นในภาษาของตรรกะทางคณิตศาสตร์สิ่งที่เราทำสามารถเขียนในรูปแบบของข้อความเชิงตรรกะ - ภาคแสดง:
เพรดิเคตเหล่านี้กำหนดรูปลักษณ์ "อิเล็กทรอนิกส์" โดยใช้วิธีการออกแบบวงจร
ในกรณีนี้ตัวอักษรจะไม่ "รบกวน" ซึ่งกันและกันเนื่องจากการส่องสว่างของเซลล์หน้าจอที่เกี่ยวข้องนั้นไม่ตรงกันบางส่วนและค่าหน่วยของการรวมจะถูกกำหนดสำหรับหนึ่งในนั้นเท่านั้น
จะเป็นอย่างไรถ้าคุณใส่ตัวอักษร K บนหน้าจอ? จากนั้นจะไม่มีตัวเชื่อมต่อสองตัวใดที่จะสร้างค่าเดียวเนื่องจากจะไม่มีการส่องสว่างของเซลล์หน้าจอที่สอดคล้องกันโดยสมบูรณ์ หากต้องการ "สอน" ระบบตัวอักษร K คุณต้องแนะนำตัวเชื่อมอื่นและทำโครงสร้างแบบเดียวกับข้างต้น
ดังนั้น เราสามารถพูดได้ว่าเราได้สร้างระบบสำหรับจดจำตัวอักษรสองตัวที่ "ถูกต้อง" ที่ให้มา
แต่จะทำอย่างไรถ้าตัวอักษรบนหน้าจอเขียนด้วยมือสั่น? จากนั้นเราจะต้องอนุญาตให้มีการส่องสว่างแบบอื่นของเซลล์หน้าจอที่อยู่ใกล้เคียง และคำนึงถึงสิ่งนี้โดยใช้การดำเนินการแยกส่วน หรือ ดังที่ทราบกันดีว่าจากการดำเนินการนี้ สัญญาณเดียวจะถูกสร้างขึ้นหากมีสัญญาณเดียวอย่างน้อยหนึ่งสัญญาณที่อินพุต
ลองพิจารณาความเป็นไปได้ในการจดจำตัวอักษร O เพื่อให้สามารถส่องสว่างของเซลล์ (1,1), (1,3), (4,1), (4,3) จากนั้นภาคแสดงที่สร้างขึ้นก่อนหน้านี้จะอยู่ในรูปแบบ:
ในทำนองเดียวกัน สำหรับตัวอักษร A ปล่อยให้เซลล์ (4,1) และ (4,3) สว่างขึ้น:
ข้าว. 2.3.การสอนร่วมกันของตัวอักษร "O" และ "A"
เมื่อรวมเพรดิเคตทั้งสองเข้าด้วยกัน เราจะได้แผนภาพในรูปที่ 2.3
ดังนั้นเราจึงได้ใช้แนวทาง "เทคนิควงจร" เพื่อการเรียนรู้และการจดจำ โดยอิงจากการใช้ฟังก์ชันบูลีนและการดำเนินงาน ตัวแปรบูลีน 0, 1.
การสร้างโครงข่ายประสาทเทียมแบบลอจิคัลที่ได้รับการฝึกฝนให้จดจำตัวอักษร
ตอนนี้ เรามาดำเนินการขั้นตอนนั้น การเปลี่ยนแปลงนั้น ซึ่งกำหนดความเรียบง่ายอันชาญฉลาดของรูปลักษณ์ตามธรรมชาติ ซึ่งได้รับการออกแบบมาเพื่อข้อมูลที่ไม่สมบูรณ์ ความไม่น่าเชื่อถือ "สัญญาณรบกวน" ข้อกำหนดของความเร็วสูง ความน่าเชื่อถือสูง และความสม่ำเสมอ เพราะเราไม่สามารถจินตนาการถึงวงจรอิเล็กทรอนิกส์ที่ซ่อนอยู่ในกะโหลกศีรษะได้
ธรรมชาติและเราซึ่งเป็นส่วนหนึ่งของธรรมชาติไม่เคยมีข้อมูลที่ถูกต้อง ชัดเจน และเชื่อถือได้ การส่องสว่างของเซลล์หน้าจอ เช่นเดียวกับตัวรับสายตาของเรานั้นไม่เคยสมบูรณ์ ภาพไม่ถูกต้อง มีสัญญาณรบกวน การละเว้น ฯลฯ จากนั้นแนวคิดเรื่องความคล้ายคลึงกันและการเชื่อมโยงก็มีความสำคัญอย่างยิ่ง “ภาพใดที่คล้ายกับภาพที่ “แสดง” ที่สุด สถานการณ์ที่เกิดขึ้น และการตอบสนองใดที่สมเหตุสมผลที่สุด - นี่คือคำถามที่กำหนดหลักการของชีวิตเราท่ามกลางอันตรายและความสำเร็จมากมาย ความเชื่อมโยงของการคิดของเราเป็นสิ่งที่แน่นอน
ซึ่งหมายความว่า เราจำเป็นต้องเปลี่ยนจากตัวแปรบูลีนที่กำหนดไว้อย่างดี (0, 1, “ใช่ - ไม่ใช่”, “ขาว - ดำ” ฯลฯ) ไปสู่ความไม่แน่นอน ความน่าเชื่อถือ หรือการประเมินข้อมูลอื่นๆ ไปสู่ตัวแปรจริง
แต่จากนั้นก็จำเป็นต้องย้ายออกจากพีชคณิตแบบบูลีนเนื่องจากไม่ได้กำหนดแนวคิดของการร่วมและการแตกแยกสำหรับตัวแปรจริง นี่คือจุดที่การวิเคราะห์และการประยุกต์ใช้หลักการของการนำไปใช้ตามธรรมชาติมาช่วย - หลักการของโครงข่ายประสาทเทียมที่รวมอยู่ในสมองของเรา
มาเปลี่ยนวงจรที่ผ่านการฝึกอบรมที่เราได้รับให้เป็นโครงข่ายประสาทเทียม (รูปที่ 2.4)
แต่ละเซลล์ของหน้าจอเป็นเซลล์ประสาทตัวรับ ซึ่งเป็นผลมาจากการส่องสว่าง ได้รับการกระตุ้นจำนวนหนึ่ง โดยรับค่าระหว่างศูนย์ถึงหนึ่ง ตัวรับที่มาแทนที่หน้าจอจะสร้างอินพุตหรือ ชั้นตัวรับโครงข่ายประสาทเทียม เราจะแทนที่ conjunctor และ disjunctor แต่ละตัวด้วยโมเดลเซลล์ประสาทเดี่ยวสำหรับเครือข่ายทั้งหมด ให้เราแนะนำเลเยอร์เอาท์พุตของเครือข่าย ซึ่งในตัวอย่างของเราประกอบด้วยเซลล์ประสาทสองตัว การกระตุ้นซึ่งจะกำหนดผลการจดจำ ตั้งชื่อเซลล์ประสาทของเลเยอร์เอาท์พุตด้วยชื่อของตัวอักษร - O และ A
ตัวรับก็เหมือนกับหน้าจอที่กำลังตื่นเต้นจากภายนอก ยังมีเซลล์ประสาทอื่นๆ ที่เลียนแบบการแพร่กระจายของการกระตุ้นในสมอง ฟังก์ชั่นการถ่ายโอน(ในแง่ของทฤษฎีการควบคุมอัตโนมัติ) หรือ ฟังก์ชั่นการเปิดใช้งาน(ในแง่ของทฤษฎีโครงข่ายประสาทเทียม) ฟังก์ชั่นนี้จะแปลงสัญญาณที่อินพุตของเซลล์ประสาทโดยคำนึงถึงน้ำหนักของอินพุตเหล่านี้ (เราจะเลื่อนการพิจารณาออกไปในตอนนี้) เป็นค่าของการกระตุ้นของเซลล์ประสาทนี้ซึ่งส่งต่อไปผ่านเครือข่ายตามการเชื่อมต่อของ เซลล์ประสาทและไปถึงเซลล์ประสาทหนึ่งหรือหลายเซลล์ของเลเยอร์เอาท์พุต
ข้าว. 2.4.โครงข่ายประสาทเทียมสำหรับจดจำตัวอักษร "O" และ "A"
เนื่องจากการทำงานของสมองถูกจำลองในระดับตรรกะ ฟังก์ชั่นการเปิดใช้งานทางเลือกค่อนข้างง่าย ดังนั้นในตัวอย่างของเรา ก็เพียงพอที่จะเลือกสิ่งต่อไปนี้ ฟังก์ชั่นการเปิดใช้งานเพื่อค้นหาค่าการกระตุ้นของเซลล์ประสาท i-th:
ในตอนแรกเราจะพบว่า
จากนั้นเราก็ใส่
หนังสือโดย Michael Nilsson "โครงข่ายประสาทเทียมและการเรียนรู้เชิงลึก"
ฉันแบ่งการแปลออกเป็นบทความหลายบทความเกี่ยวกับHabréเพื่อให้อ่านง่ายขึ้น:
ส่วนที่ 1) ความรู้เบื้องต้นเกี่ยวกับโครงข่ายประสาทเทียม
ส่วนที่ 2) การก่อสร้างและการลาดลง
ส่วนที่ 3) การใช้งานเครือข่ายเพื่อการจดจำตัวเลข
ตอนที่ 4) เล็กน้อยเกี่ยวกับการเรียนรู้เชิงลึก
การแนะนำ
ระบบการมองเห็นของมนุษย์เป็นระบบที่น่าทึ่งที่สุดในโลก ในแต่ละซีกโลกของสมองของเรา มีเปลือกสมองส่วนที่มองเห็นซึ่งมีเซลล์ประสาท 140 ล้านเซลล์ที่มีการเชื่อมต่อระหว่างพวกมันหลายหมื่นล้านเซลล์ แต่ไม่มีเยื่อหุ้มสมองแบบนี้เพียงเซลล์เดียว มีหลายเซลล์ และเมื่อรวมกันแล้วพวกมันก็กลายเป็นซูเปอร์คอมพิวเตอร์ที่แท้จริงในหัวของเรา ดีที่สุด ดัดแปลงในช่วงวิวัฒนาการเพื่อการรับรู้องค์ประกอบภาพของโลกของเรา แต่ความยากในการจดจำรูปแบบการมองเห็นจะชัดเจนหากคุณพยายามเขียนโปรแกรมเพื่อจดจำ เช่น ตัวเลขที่เขียนด้วยลายมือ
สัญชาตญาณง่ายๆ - "9 มีห่วงที่ด้านบนและมีหางแนวตั้งที่ด้านล่าง" ไม่ใช่เรื่องง่ายที่จะนำไปใช้ตามอัลกอริทึม โครงข่ายประสาทเทียมใช้ตัวอย่าง อนุมานกฎบางอย่าง และเรียนรู้จากกฎเหล่านั้น ยิ่งไปกว่านั้น ยิ่งเราแสดงตัวอย่างเครือข่ายมากเท่าใด ระบบก็จะยิ่งเรียนรู้เกี่ยวกับตัวเลขที่เขียนด้วยลายมือมากขึ้นเท่านั้น ดังนั้นจึงสามารถจำแนกตัวเลขเหล่านั้นได้แม่นยำยิ่งขึ้น เราจะเขียนโปรแกรมด้วยโค้ด 74 บรรทัดที่จะตรวจจับตัวเลขที่เขียนด้วยลายมือด้วยความแม่นยำ >99% ไปกันเลย!
เพอร์เซปตรอน
โครงข่ายประสาทเทียมคืออะไร? ขั้นแรก ผมจะอธิบายแบบจำลองของเซลล์ประสาทเทียม เพอร์เซพตรอนได้รับการพัฒนาในปี 1950 โดยแฟรงก์ โรเซนแบลตต์ และวันนี้เราจะใช้หนึ่งในโมเดลหลักของเขา นั่นก็คือ ซิกมอยด์ เพอร์เซพตรอน แล้วมันทำงานยังไง? Persepron ใช้เวกเตอร์เป็นอินพุตและส่งคืนค่าเอาต์พุตบางส่วน
Rosenblatt เสนอกฎง่ายๆ สำหรับการคำนวณค่าเอาต์พุต เขาแนะนำแนวคิดเรื่อง "ความสำคัญ" จากนั้นจึงแนะนำ "น้ำหนัก" ของแต่ละค่าอินพุต ในกรณีของเรานั้นจะขึ้นอยู่กับว่าค่านั้นมากกว่าหรือน้อยกว่าค่าเกณฑ์ที่กำหนด
และนั่นคือทั้งหมดที่เราต้องการ! ด้วยการเปลี่ยนแปลงเวกเตอร์ของน้ำหนัก คุณจะได้แบบจำลองการตัดสินใจที่แตกต่างกันโดยสิ้นเชิง ตอนนี้เรากลับมาที่โครงข่ายประสาทเทียม
ดังนั้นเราจึงเห็นว่าเครือข่ายประกอบด้วยเซลล์ประสาทหลายชั้น เลเยอร์แรกเรียกว่าเลเยอร์อินพุตหรือตัวรับ () เลเยอร์ถัดไปถูกซ่อน () และสุดท้ายคือเลเยอร์เอาต์พุต () สภาพค่อนข้างยุ่งยาก ลองแทนที่ด้วยผลคูณสเกลาร์ของเวกเตอร์กันดีกว่า ต่อไป เรียกมันว่าออฟเซ็ตเพอร์เซปตรอน หรือเลื่อนไปทางซ้าย เราได้รับ:
ปัญหาการเรียนรู้
หากต้องการดูว่าการเรียนรู้ทำงานอย่างไร สมมติว่าเราเปลี่ยนแปลงน้ำหนักหรืออคติในเครือข่ายเล็กน้อย เราต้องการให้การเปลี่ยนแปลงน้ำหนักเล็กน้อยนี้ทำให้เกิดการเปลี่ยนแปลงเล็กน้อยในเอาต์พุตของเครือข่าย แผนผังมีลักษณะดังนี้:
หากเป็นไปได้ เราก็สามารถจัดการน้ำหนักในทิศทางที่เป็นประโยชน์ต่อเราและค่อยๆ ฝึกเครือข่าย แต่ปัญหาก็คือว่าเมื่อน้ำหนักของเซลล์ประสาทหนึ่งมีการเปลี่ยนแปลง เอาต์พุตของมันสามารถ "พลิก" ได้อย่างสมบูรณ์จาก 0 เป็น 1 ซึ่งอาจนำไปสู่ข้อผิดพลาดในการคาดการณ์ขนาดใหญ่สำหรับทั้งเครือข่าย แต่มีวิธีแก้ไขปัญหานี้
เซลล์ประสาทซิกมอยด์
เราสามารถเอาชนะปัญหานี้ได้ด้วยการแนะนำเซลล์ประสาทเทียมชนิดใหม่ที่เรียกว่าเซลล์ประสาทซิกมอยด์ เซลล์ประสาทซิกมอยด์นั้นคล้ายคลึงกับเพอร์เซปตรอน แต่ได้รับการแก้ไขเพื่อให้น้ำหนักและอคติที่เปลี่ยนแปลงเล็กน้อยทำให้เกิดการเปลี่ยนแปลงเอาต์พุตเพียงเล็กน้อยเท่านั้น โครงสร้างของเซลล์ประสาทซิกมอยด์คล้ายกัน แต่ตอนนี้สามารถรับเป็นอินพุตและเอาต์พุตเป็นเอาต์พุตได้
ดูเหมือนว่ากรณีเหล่านี้จะแตกต่างไปจากเดิมอย่างสิ้นเชิง แต่ฉันรับรองกับคุณว่าเพอร์เซปตรอนและเซลล์ประสาทซิกมอยด์มีอะไรเหมือนกันหลายอย่าง ให้เราสมมุติว่า แล้ว และ ดังนั้น การสนทนาก็เป็นจริงเช่นกัน ถ้า , แล้ว และ แน่นอนว่าเมื่อทำงานกับเซลล์ประสาทซิกมอยด์ เรามีเพอร์เซปตรอนที่นุ่มนวลกว่า และแน่นอน:
สถาปัตยกรรมโครงข่ายประสาทเทียม
การออกแบบเลเยอร์อินพุตและเอาต์พุตของโครงข่ายประสาทเทียมนั้นค่อนข้างง่าย ตัวอย่างเช่น สมมติว่าเรากำลังพยายามพิจารณาว่ามีเลข "9" ที่เขียนด้วยลายมืออยู่ในรูปภาพหรือไม่ วิธีธรรมชาติในการออกแบบเครือข่ายคือการเข้ารหัสความเข้มของพิกเซลภาพลงในเซลล์ประสาทอินพุต หากรูปภาพมีขนาด แสดงว่ามีเซลล์ประสาทอินพุต เลเยอร์เอาท์พุตมีเซลล์ประสาทหนึ่งอันซึ่งมีค่าเอาท์พุต หากมีค่ามากกว่า 0.5 แสดงว่ามี "9" อยู่ในภาพ มิฉะนั้นจะไม่มี แม้ว่าการออกแบบเลเยอร์อินพุตและเอาท์พุตจะเป็นงานที่ค่อนข้างง่าย แต่การเลือกสถาปัตยกรรมเลเยอร์ที่ซ่อนอยู่ถือเป็นศิลปะอย่างหนึ่ง นักวิจัยได้พัฒนาพฤติกรรมการออกแบบเลเยอร์ที่ซ่อนอยู่ที่หลากหลาย เช่น พฤติกรรมที่ช่วยชดเชยจำนวนเลเยอร์ที่ซ่อนอยู่เทียบกับเวลาการฝึกอบรมเครือข่าย
จนถึงตอนนี้ เราได้ใช้โครงข่ายประสาทเทียมซึ่งเอาท์พุตจากเลเยอร์หนึ่งถูกใช้เป็นสัญญาณสำหรับเลเยอร์ถัดไป เครือข่ายดังกล่าวเรียกว่าเครือข่ายประสาทโดยตรงหรือเครือข่ายฟีดฟอร์เวิร์ด () อย่างไรก็ตาม ยังมีโครงข่ายประสาทเทียมรุ่นอื่นๆ ที่สามารถป้อนกลับได้ โมเดลเหล่านี้เรียกว่าโครงข่ายประสาทเทียมที่เกิดซ้ำ () เครือข่ายประสาทที่เกิดซ้ำมีอิทธิพลน้อยกว่าเครือข่ายฟีดฟอร์เวิร์ด ส่วนหนึ่งเป็นเพราะอัลกอริธึมการฝึกอบรมสำหรับเครือข่ายที่เกิดซ้ำมีประสิทธิภาพน้อยกว่า (อย่างน้อยจนถึงปัจจุบัน) แต่เครือข่ายที่เกิดซ้ำยังคงน่าสนใจอย่างยิ่ง พวกมันมีความใกล้ชิดกับวิธีการทำงานของสมองของเรามากกว่าเครือข่ายฟีดฟอร์เวิร์ด และเป็นไปได้ว่าเครือข่ายที่เกิดซ้ำสามารถแก้ไขปัญหาสำคัญที่สามารถแก้ไขได้ด้วยความยากลำบากอย่างยิ่งด้วยเครือข่ายการเข้าถึงโดยตรง
นั่นคือทั้งหมดสำหรับวันนี้ ในบทความถัดไป ฉันจะพูดถึงการไล่ระดับสีและการฝึกฝนเครือข่ายในอนาคตของเรา ขอบคุณสำหรับความสนใจของคุณ!
ปัญหาการรู้จำภาพเป็นหนึ่งในปัญหาที่แพร่หลายที่สุดที่แก้ไขได้สำเร็จโดยใช้ ANN มีการกำหนดปัญหาที่หลากหลายที่นี่ หนึ่งในตัวเลือกที่ง่ายที่สุดคือการจดจำชุดอักขระที่ตายตัว
ตัวอย่างที่ 3.11การรับรู้จดหมาย ระบบ MatLab มีฟังก์ชั่นพิเศษ
>> = พรพร็อบ;
ฟังก์ชันนี้ส่งคืนเมทริกซ์ไบนารีสองตัว: ในเมทริกซ์ตัวอักษร (ขนาด 35x26) แต่ละคอลัมน์จะเข้ารหัสตัวอักษรหนึ่งตัว และเมทริกซ์เป้าหมาย (ขนาด 26x26) จะเป็นเส้นทแยงมุมและทำหน้าที่ระบุคอลัมน์
แต่ละคอลัมน์ของตัวอักษรสอดคล้องกับเมทริกซ์ขนาด 7x5 ซึ่งเป็นภาพไบนารีของตัวอักษร
ฟังก์ชันต่อไปนี้จะแสดงคอลัมน์ตัวอักษรทั้งหมดเป็นตัวอักษร (ฟังก์ชันจะต้องอยู่ในไดเร็กทอรีการทำงานของ MatLab):
ฟังก์ชัน plotletters(ตัวอักษร)
fprintf("plotletters กำลังพล็อตตัวอักษร 25 ตัวแรก\n");
ขนาด(ตัวอักษร);
error("ตัวเขียนต้องมีคอลัมน์ยาว 35 ตัวเลข");
MM=แผนผังสี(สีเทา);
ดด=ดด(จบ:-1:1,:);
imagec(ปรับรูปร่างใหม่(ตัวอักษร(:,j),5,7)");
ผลลัพธ์ของการดำเนินการฟังก์ชันจะแสดงในรูป 3.12:
>> โครงเรื่อง(ตัวอักษร);
รูปที่ 3.12.การเข้ารหัสตัวอักษรไบนารี
ตามโครงสร้างของเมทริกซ์เป้าหมาย โครงข่ายประสาทเทียมควรมีเซลล์ประสาทเอาท์พุต 26 ตัว มาตั้งค่าจำนวนเซลล์ประสาทในเลเยอร์ที่ซ่อนอยู่เป็น 10
>> net = newff(minmax(ตัวอักษร),,("logsig" "logsig"),"traingdx");
>> P = ตัวอักษร; T = เป้าหมาย;
มากำหนดจำนวนยุคและเริ่มกระบวนการเรียนรู้กันดีกว่า:
>> net.trainParam.epochs = 1,000;
>> = รถไฟ (สุทธิ, P, T);
เส้นโค้งการเรียนรู้จะแสดงในรูป 3.13.
รูปที่ 3.13.การเปลี่ยนแปลงข้อผิดพลาดในระหว่างกระบวนการฝึกอบรม
หากต้องการตรวจสอบคุณภาพของเครือข่ายที่ได้รับการฝึกอบรมให้พิจารณาภาพตัวอักษรที่มีเสียงดัง (รูปที่ 3.14):
>> noisyP = ตัวอักษร+randn(ขนาด(ตัวอักษร)) * 0.2;
>> โครงเรื่อง(noisyP);
คำสั่งต่อไปนี้รันเครือข่ายบนชุดอินพุตที่มีสัญญาณรบกวน:
>> A2 = ซิม(เน็ต,noisyP);
เมทริกซ์ A2 ที่นี่ประกอบด้วยตัวเลขต่างๆ ในช่วง การใช้ฟังก์ชัน แข่งขันคุณสามารถเลือกองค์ประกอบสูงสุดในแต่ละคอลัมน์ จากนั้นกำหนดค่า 1 ให้กับองค์ประกอบนั้น และรีเซ็ตองค์ประกอบที่เหลือของคอลัมน์ให้เป็นศูนย์:
รูปที่ 3.14.รูปภาพตัวอักษรต่อหน้าเสียงรบกวน
>>สำหรับเจ=1:26
A3 = แข่งขัน(A2(:,j));
คำตอบ (j) = ค้นหา (แข่งขัน (A3) == 1);
จากนั้น คุณสามารถประเมินการตอบสนองของเครือข่ายต่อเวกเตอร์อินพุตที่มีสัญญาณรบกวนด้วยสายตาได้โดยใช้คำสั่ง:
>> NetLetters=ตัวอักษร(:,ตอบ);
>> โครงเรื่อง (NetLetters);
ในรูป รูปที่ 3.15 แสดงผลการจดจำขั้นสุดท้าย
รูปที่ 3.15.ผลลัพธ์ของการรับรู้โครงข่ายประสาทเทียม
แน่นอนว่ามีการระบุตัวอักษรบางตัวไม่ถูกต้อง นี่อาจเป็นผลมาจากการฝึกอบรมเครือข่ายที่ไม่ดี หรือระดับเสียงที่สูงเกินไป หรือการเลือกจำนวนเซลล์ประสาทในชั้นในที่ไม่ถูกต้อง