คอมพิวเตอร์ Windows อินเทอร์เน็ต

โครงข่ายประสาทเทียมยังมีชีวิตอยู่ วิธีสร้างเครือข่ายประสาทของคุณเองตั้งแต่เริ่มต้นใน Python โครงข่ายประสาทคืออะไร

ที่คั่นหน้า

เราบอกคุณถึงวิธีสร้างโครงข่ายประสาทเทียมแบบง่ายๆ ในไม่กี่ขั้นตอน และสอนให้รู้จักผู้ประกอบการที่มีชื่อเสียงในรูปถ่าย

ขั้นตอนที่ 0 ทำความเข้าใจว่าโครงข่ายประสาททำงานอย่างไร

วิธีที่ง่ายที่สุดในการทำความเข้าใจหลักการของโครงข่ายประสาทเทียมคือการใช้ตัวอย่างของ Teachable Machine ซึ่งเป็นโครงการเพื่อการศึกษาของ Google

ในฐานะอินพุต - สิ่งที่เครือข่ายประสาทต้องประมวลผล - Teachable Machine ใช้ภาพจากกล้องของแล็ปท็อป เป็นผลลัพธ์ - สิ่งที่โครงข่ายประสาทเทียมควรทำหลังจากประมวลผลข้อมูลขาเข้า คุณสามารถใช้ gif หรือเสียงได้

ตัวอย่างเช่น คุณสามารถสอนเครื่องที่สอนได้ให้พูดว่า "สวัสดี" เมื่อยกฝ่ามือขึ้น ด้วยการยกนิ้วโป้ง - "เจ๋ง" และด้วยใบหน้าที่ประหลาดใจด้วยปากที่เปิด - "ว้าว"

ก่อนอื่นคุณต้องฝึกโครงข่ายประสาทเทียม ในการดำเนินการนี้ ให้ยกมือขึ้นแล้วกดปุ่ม "Train Green" - บริการใช้รูปภาพหลายสิบภาพเพื่อค้นหารูปแบบในภาพ ชุดของรูปภาพดังกล่าวมักเรียกว่า "ชุดข้อมูล"

ตอนนี้ยังคงต้องเลือกการกระทำที่จะเรียกเมื่อจำภาพได้ - พูดวลี แสดง GIF หรือเล่นเสียง ในทำนองเดียวกัน เราฝึกโครงข่ายประสาทเทียมเพื่อจดจำใบหน้าและนิ้วหัวแม่มือที่ประหลาดใจ

เมื่อโครงข่ายประสาทเทียมได้รับการฝึกฝนแล้ว ก็สามารถใช้งานได้ Teachable Machine แสดงค่าสัมประสิทธิ์ "ความมั่นใจ" - ว่า "มั่นใจ" แค่ไหน ระบบคือการแสดงทักษะอย่างหนึ่ง

วิดีโอสั้นๆ เกี่ยวกับการทำงานของ Teachable Machine

ขั้นตอนที่ 1. เตรียมคอมพิวเตอร์ให้ทำงานกับโครงข่ายประสาทเทียม

ตอนนี้เราจะสร้างโครงข่ายประสาทเทียมขึ้นมาเอง ซึ่งเมื่อส่งภาพจะรายงานสิ่งที่แสดงในภาพ ขั้นแรก เราจะสอนโครงข่ายประสาทให้รู้จักดอกไม้ในภาพ เช่น ดอกคาโมไมล์ ดอกทานตะวัน ดอกแดนดิไลออน ทิวลิป หรือดอกกุหลาบ

ในการสร้างโครงข่ายประสาทเทียมของคุณเอง คุณจะต้องมี Python ซึ่งเป็นหนึ่งในภาษาโปรแกรมที่ใช้กันทั่วไปและเรียบง่ายที่สุด และ TensorFlow ซึ่งเป็นห้องสมุดเปิดของ Google สำหรับการสร้างและฝึกอบรมโครงข่ายประสาทเทียม

เมื่อเร็ว ๆ นี้มีวิธีแก้ปัญหาค่อนข้างมากโดยใช้โครงข่ายประสาทเทียม: แอปพลิเคชัน บริการ โปรแกรมใช้เครือข่ายประเภทนี้เพื่อเพิ่มความเร็วในการแก้ปัญหาต่างๆ แต่โครงข่ายประสาทเทียมคืออะไร? บรรณาธิการ AIN.UA ตัดสินใจค้นหาว่าเทคโนโลยียอดนิยมนี้คืออะไร มาจากไหน และทำงานอย่างไร

เป็นการยากที่จะเรียกโครงข่ายประสาทเทียมว่าเป็นเทรนด์ทางเทคโนโลยีที่สดใหม่ การค้นหาความคิดทางวิทยาศาสตร์ครั้งแรกในพื้นที่นี้เกิดขึ้นตั้งแต่กลางศตวรรษที่ 20 เมื่อผู้นำแห่งยุคนั้นตัดสินใจว่าจะเป็นการดีที่จะสร้างคอมพิวเตอร์โดยอาศัยความสำเร็จตามธรรมชาติของธรรมชาติของแม่ โดยเฉพาะอย่างยิ่งโดยการคัดลอกหลักการบางอย่างของสมองมนุษย์

การสร้างอะนาล็อกทางเทคนิคของคอมพิวเตอร์ชีวภาพตามธรรมชาติของเราไม่ใช่เรื่องง่าย โดยต้องผ่านช่วงที่น่าสนใจและลดลงเรื่อยๆ สิ่งนี้อธิบายได้จากข้อเท็จจริงที่ว่าระดับของความก้าวหน้าทางเทคโนโลยีของทศวรรษ 1950 เมื่อทุกอย่างเริ่มต้น ไม่ได้ก้าวไปพร้อมกับความคิดทางวิทยาศาสตร์: การออกแบบโครงข่ายประสาทเทียมแบบแรกไม่ได้ทำให้พวกเขาบรรลุศักยภาพสูงสุด

และทำงานอย่างไร

สมองของมนุษย์โดยเฉลี่ยประกอบด้วยเซลล์ประสาทประมาณ 86 พันล้านเซลล์ที่เชื่อมต่อเป็นระบบเดียวสำหรับรับ ประมวลผล และส่งข้อมูลต่อไป ในเครือข่ายนี้ เซลล์ประสาทแต่ละเซลล์ทำหน้าที่เหมือนไมโครโปรเซสเซอร์ที่เดนไดรต์ถูกดึงออกมา ซึ่งเป็นกระบวนการในการรับแรงกระตุ้น นอกจากนี้ยังมีเอาต์พุตในรูปของซอนซึ่งส่งแรงกระตุ้นที่ได้รับไปยังเซลล์ประสาทอื่น

โครงข่ายประสาทเทียมที่สร้างขึ้นเทียม (ANN) เลียนแบบกระบวนการประมวลผลข้อมูลของอะนาล็อกทางชีวภาพ และเป็นอาร์เรย์ของมินิโปรเซสเซอร์ที่แบ่งออกเป็นสามกลุ่ม:

  • จุดเข้าใช้งาน (เซ็นเซอร์) คือเซลล์ประสาทที่ข้อมูลสำหรับการประมวลผลเข้าสู่ ANN
  • จุดเอาต์พุต (ปฏิกิริยา) คือเซลล์ประสาทที่ ANN สร้างผลลัพธ์สุดท้าย
  • เซลล์ประสาทที่ซ่อนอยู่ (เชื่อมโยง) - อาร์เรย์การทำงานของเซลล์ประสาทที่อยู่ระหว่างจุดเข้าและออก

งานหลักเกี่ยวกับการประมวลผลข้อมูลเกิดขึ้นที่ระดับของเซลล์ประสาท (เชื่อมโยง) ที่ซ่อนอยู่ อาร์เรย์ของพวกเขาถูกจัดลำดับในหลายชั้น และยิ่งมีจำนวนมากเท่าใด การประมวลผลข้อมูลก็จะยิ่งสามารถผลิต ANN ได้อย่างแม่นยำมากขึ้น

แผนผังของ perceptron - โครงข่ายประสาทเทียมชั้นเดียวที่ง่ายที่สุด

ไม่สามารถตั้งโปรแกรมได้

คุณลักษณะเฉพาะของโครงข่ายประสาทเทียมคือความจริงที่ว่าไม่ได้ตั้งโปรแกรมไว้ แต่ได้รับการฝึกฝน จากสิ่งนี้ ANN แบ่งออกเป็นสามหมวดหมู่ - ฝึกได้ การเรียนรู้ด้วยตนเอง และ ANN แบบผสม

โครงข่ายประสาทเทียมที่ได้รับการฝึกฝน เช่น เด็กที่เรียนรู้เกี่ยวกับโลก มักต้องการความเอาใจใส่และคำติชมอย่างใกล้ชิดจากผู้สร้างอย่างต่อเนื่อง ในการทำงานกับมัน ผู้วิจัยได้จัดเตรียมอาร์เรย์ข้อมูลให้กับ ANN หลังจากนั้นเขาเสนอให้เธอแก้ปัญหาด้วยคำตอบที่กำหนดไว้ล่วงหน้า โซลูชันทั้งสอง - ถูกเปรียบเทียบในขั้นต้นและเสนอโดยโครงข่ายประสาทเทียม หากความแตกต่างระหว่างค่าทั้งสองเกินค่าความผิดพลาดที่อนุญาต ผู้วิจัยจะปรับโครงข่ายประสาทเทียม หลังจากนั้นกระบวนการเรียนรู้จะดำเนินต่อ

ANN ที่เรียนรู้ด้วยตนเองจะเรียนรู้โลกโดยไม่ต้องมีผู้สอน โดยใช้อัลกอริธึมที่กำหนดสำหรับการเรียนรู้ของพวกเขา เมื่อได้รับงานแล้ว โครงข่ายประสาทเทียมเองก็มองหาคำตอบ แก้ไขข้อผิดพลาดที่เกิดขึ้น และหากจำเป็น ให้ "ย้อนกลับ" ตามสายโซ่ของเซลล์ประสาทที่เชื่อมโยงไปยังขั้นตอนที่ถูกต้องสุดท้ายเพื่อเริ่มต้นใหม่

วิดีโอด้านล่างเป็นผลจากเซสชั่นการเรียนรู้ด้วยตนเองตลอด 24 ชั่วโมงของ INS ใน Super Mario โดยมีเป้าหมายในการบรรลุคะแนนสูงสุดที่ได้รับขณะเคลื่อนที่ผ่านด่าน ยิ่งเธอไปได้ไกลเท่าไหร่ คะแนนสุดท้ายก็ยิ่งสูงขึ้นเท่านั้น ในการป้อนข้อมูล ผู้วิจัยใช้องค์ประกอบของแผนที่และฝ่ายตรงข้าม และการกระทำที่มีให้สำหรับผู้เล่นเป็นผลลัพธ์

แต่ ANN ที่ดัดแปลงเล็กน้อยเช่นเดียวกันนี้ได้รับการควบคุมอยู่หลังพวงมาลัยของเกมอื่น - Mario Kart

คุณสามารถลองสวมบทบาทเป็นผู้ทดสอบโครงข่ายประสาทเทียมได้ง่ายๆ โดยใช้แบบจำลองง่ายๆ ที่จำลองการเคลื่อนที่ของรถยนต์ด้วยระบบอัตโนมัติ รถยนต์เคลื่อนที่ภายใต้การควบคุมของโครงข่ายประสาทเทียมสองโครงและปฏิบัติตามกฎพื้นฐาน - ให้เคลื่อนไปข้างหน้าและหลีกเลี่ยงการชนกัน

งานของคุณคือสร้างอุปสรรคสำหรับพวกเขาและดูว่านักบินอัตโนมัติจัดการกับพวกเขาได้อย่างไร รวมทั้งเตรียมจิตใจให้พร้อมสำหรับการปรากฏตัวของโดรนที่คล้ายกันจาก Uber และบริษัทคู่แข่งบนท้องถนนในเมืองของคุณ

หัวใจของทุกสิ่งคืออัลกอริธึมที่สร้างขึ้นโดยธรรมชาติ

เมื่อพูดถึงโครงข่ายประสาทเทียมและการฝึกฝน เราไม่สามารถลืมพูดถึงปรากฏการณ์ทางธรรมชาติอย่างอัลกอริทึมของมด ซึ่งคุณสามารถมองเห็นได้อย่างแท้จริงในบ้านของคุณเอง

เมื่อต้องย้ายไปหาอาหารจากรังและจากด้านหลัง มดมักจะมองหาเส้นทางที่เหมาะกับสรีระมากที่สุด และในกรณีที่มีการรบกวน พวกมันจะปรับเส้นทางของพวกมันให้เข้ากับสถานการณ์ที่เปลี่ยนแปลงไป ในระหว่างการเคลื่อนไหว มดจะทิ้งร่องรอยของฟีโรโมนพิเศษไว้เบื้องหลัง นักล่าอาหารคนต่อไปตามเส้นทางที่ผู้บุกเบิกทิ้งไว้ และทำให้อิ่มตัวด้วย "สัญญาณ" ทางชีวภาพ

สมมุติว่ามดมีสิ่งกีดขวางทางไปหาอาหารที่สามารถข้ามไปทางขวาหรือทางซ้ายได้ ทางด้านซ้าย ระยะห่างจากแหล่งอาหารจะสั้นลง แม้ว่ามดจะผ่านทั้งสองข้างของอุปสรรคในการทำซ้ำครั้งแรก แต่ความอิ่มตัวของฟีโรโมนด้านซ้ายจะเกิดขึ้นเร็วขึ้นเนื่องจากระยะทางสั้น ๆ

มันหมายความว่าอะไร? ในการทำซ้ำในภายหลัง เส้นทางด้านซ้ายซึ่งเป็นเส้นทางที่ถูกหลักสรีรศาสตร์ที่สุด จะเป็นเส้นทางเดียวที่ใช้เมื่อมดหาอาหารเคลื่อนที่ กระบวนการเรียนรู้ในโครงข่ายประสาทเทียมก็เกิดขึ้นเช่นเดียวกัน

ทำไม ANN ถึงไม่ใช่ AI

ไม่ว่าโครงข่ายประสาทเทียมจะ “ฉลาด” แค่ไหน ก็ยังไม่ใช่ปัญญาประดิษฐ์ แต่เป็นเครื่องมือสำหรับงานจำแนกประเภทข้อมูล แน่นอน เราสามารถประหลาดใจที่เสิร์ชเอ็นจิ้นจดจำคำบางคำรวมกัน จากนั้นจึงเลือกรูปภาพที่มีแมวที่เราต้องการโดยอิงจากคำนั้น แต่นี่ไม่ใช่ผลลัพธ์ของกิจกรรมทางจิตของคอมพิวเตอร์ประสาท แต่เป็นเพียง การทำงานร่วมกันของตัวแยกประเภทหลายตัว

เครือข่ายของเซลล์ประสาทในสมองของมนุษย์แม้จะมีความเชื่อที่ดื้อรั้นของคนรุ่นก่อน ๆ ในเรื่องความเสื่อมโทรมของน้อง แต่ก็ยังซับซ้อนกว่าโครงสร้างที่เป็นทางการของ ANN และเนื่องจากการเชื่อมต่อจำนวนมากและความแปรปรวนสามารถทำได้ เพื่อแก้ปัญหาด้วยวิธีที่ไม่ได้มาตรฐาน นอกรูปแบบที่กำหนดโดยกฎและสูตร

พูดง่ายๆ ก็คือ อเล็กซานเดอร์มหาราชสามารถตัดปมกอร์เดียนได้แม้กระทั่งตอนนี้ โครงข่ายประสาทเทียมไม่ใช่

AIN.UA ได้รายงานก่อนหน้านี้เกี่ยวกับศิลปินชาวเยอรมันที่พัฒนาการพิมพ์เสื้อผ้าที่ออกแบบมาเพื่อปกป้องผู้คนจากการจดจำใบหน้าผ่านโครงข่ายประสาทเทียม

ต้องการรับข่าวสารบน Facebook คลิก "ถูกใจ"

โครงข่ายประสาทเทียมคือชุดของเซลล์ประสาทที่มีปฏิสัมพันธ์ซึ่งกันและกัน สามารถรับ ประมวลผล และสร้างข้อมูลได้ เป็นการยากที่จะจินตนาการถึงงานของสมองมนุษย์ โครงข่ายประสาทในสมองของเรากำลังทำงานอยู่ ดังนั้นตอนนี้คุณสามารถอ่านสิ่งนี้ได้: เซลล์ประสาทของเราจะจำตัวอักษรและเขียนเป็นคำได้

โครงข่ายประสาทเทียมเปรียบเสมือนสมอง เดิมทีมันถูกตั้งโปรแกรมเพื่อลดความซับซ้อนของกระบวนการคำนวณที่ซับซ้อน ทุกวันนี้ โครงข่ายประสาทเทียมมีความเป็นไปได้มากขึ้น บางส่วนอยู่ในสมาร์ทโฟนของคุณ อีกส่วนหนึ่งได้บันทึกไว้ในฐานข้อมูลที่คุณเปิดบทความนี้ ทั้งหมดนี้เกิดขึ้นได้อย่างไรและทำไม อ่านต่อ

มันเริ่มต้นอย่างไร

ผู้คนต้องการเข้าใจว่าจิตใจของบุคคลนั้นมาจากไหนและสมองทำงานอย่างไร ในช่วงกลางของศตวรรษที่ผ่านมา Donald Hebb นักประสาทวิทยาชาวแคนาดาเข้าใจสิ่งนี้ Hebb ศึกษาปฏิสัมพันธ์ของเซลล์ประสาทซึ่งกันและกัน ตรวจสอบหลักการที่พวกมันรวมกันเป็นกลุ่ม (ตามหลักวิทยาศาสตร์ - ตระการตา) และเสนออัลกอริธึมแรกในวิทยาศาสตร์สำหรับการฝึกอบรมโครงข่ายประสาทเทียม

ไม่กี่ปีต่อมา นักวิทยาศาสตร์กลุ่มหนึ่งได้จำลองโครงข่ายประสาทเทียมที่สามารถแยกแยะรูปทรงสี่เหลี่ยมจัตุรัสจากรูปทรงอื่นๆ

โครงข่ายประสาทเทียมทำงานอย่างไร?

นักวิจัยพบว่าโครงข่ายประสาทเทียมเป็นกลุ่มของชั้นของเซลล์ประสาท ซึ่งแต่ละชั้นมีหน้าที่ในการจำแนกเกณฑ์เฉพาะ เช่น รูปร่าง สี ขนาด เนื้อสัมผัส เสียง ปริมาตร ฯลฯ เป็นผลจากจำนวนนับล้านในแต่ละปี จากการทดลองและการคำนวณมากมาย เครือข่ายที่ง่ายที่สุดถูกเพิ่มเลเยอร์ใหม่และเซลล์ประสาทใหม่ พวกเขาผลัดกันทำงาน ตัวอย่างเช่น อันแรกกำหนดว่าสี่เหลี่ยมจัตุรัสเป็นสี่เหลี่ยมจัตุรัสหรือไม่ อันที่สองเข้าใจว่าสี่เหลี่ยมจัตุรัสนั้นเป็นสีแดงหรือไม่ อันที่สามคำนวณขนาดของสี่เหลี่ยมจัตุรัส และอื่นๆ ไม่ใช่สี่เหลี่ยมจัตุรัส ไม่สีแดง และตัวเลขที่มีขนาดไม่เหมาะสมจะตกอยู่ในกลุ่มของเซลล์ประสาทใหม่และถูกตรวจสอบโดยพวกมัน

โครงข่ายประสาทคืออะไรและทำอะไรได้บ้าง?

นักวิทยาศาสตร์ได้พัฒนาโครงข่ายประสาทเทียม เพื่อให้พวกเขาได้เรียนรู้ที่จะแยกแยะระหว่างรูปภาพ วิดีโอ ข้อความ และคำพูดที่ซับซ้อน ปัจจุบันมีโครงข่ายประสาทเทียมหลายประเภท พวกมันถูกจำแนกตามสถาปัตยกรรม - ชุดของพารามิเตอร์ข้อมูลและน้ำหนักของพารามิเตอร์เหล่านี้ ลำดับความสำคัญที่แน่นอน ด้านล่างนี้คือบางส่วนของพวกเขา

โครงข่ายประสาทเทียม

เซลล์ประสาทแบ่งออกเป็นกลุ่มแต่ละกลุ่มจะคำนวณลักษณะที่กำหนด ในปี 1993 นักวิทยาศาสตร์ชาวฝรั่งเศส Jan LeCun ได้แสดงให้โลกเห็น LeNet 1 ซึ่งเป็นโครงข่ายประสาทเทียมเครือข่ายแรกที่สามารถจดจำตัวเลขที่เขียนบนกระดาษด้วยมือได้อย่างรวดเร็วและแม่นยำ ดูด้วยตัวคุณเอง:

ทุกวันนี้ โครงข่ายประสาทเทียมส่วนใหญ่ใช้เพื่อวัตถุประสงค์ด้านมัลติมีเดีย: ทำงานกับกราฟิก เสียง และวิดีโอ

โครงข่ายประสาทกำเริบ

เซลล์ประสาทจะจดจำข้อมูลอย่างสม่ำเสมอและสร้างการดำเนินการเพิ่มเติมตามข้อมูลนี้ ในปี 1997 นักวิทยาศาสตร์ชาวเยอรมันได้แก้ไขเครือข่ายที่เกิดซ้ำที่ง่ายที่สุดให้เป็นเครือข่ายที่มีหน่วยความจำระยะสั้นระยะยาว จากนั้นจึงพัฒนาเครือข่ายที่มีเซลล์ประสาทกำเริบที่ควบคุมโดยอิงจากสิ่งเหล่านี้

ทุกวันนี้ ด้วยความช่วยเหลือของเครือข่ายดังกล่าว ข้อความต่างๆ จะถูกเขียนและแปล บอทได้รับการตั้งโปรแกรมให้ดำเนินการสนทนาที่มีความหมายกับบุคคลหนึ่งๆ มีการสร้างรหัสสำหรับหน้าและโปรแกรมต่างๆ

การใช้โครงข่ายประสาทเทียมประเภทนี้คือความสามารถในการวิเคราะห์และสร้างข้อมูล รวบรวมฐานข้อมูล และแม้กระทั่งการทำนาย

ในปี 2015 SwiftKey ได้เปิดตัวคีย์บอร์ดตัวแรกของโลกที่ขับเคลื่อนโดยโครงข่ายประสาทเทียมที่มีเซลล์ประสาทที่ควบคุมอยู่เป็นประจำ จากนั้นระบบจะให้คำแนะนำในขั้นตอนการพิมพ์ตามคำสุดท้ายที่ป้อน ปีที่แล้ว นักพัฒนาได้ฝึกฝนโครงข่ายประสาทเทียมเพื่อเรียนรู้บริบทของข้อความที่พิมพ์ และคำใบ้ก็มีความหมายและมีประโยชน์:

โครงข่ายประสาทเทียมแบบรวม (convolutional + recurrent)

โครงข่ายประสาทเทียมดังกล่าวสามารถเข้าใจสิ่งที่อยู่ในภาพและอธิบายได้ และในทางกลับกัน: วาดภาพตามคำอธิบาย ตัวอย่างที่ชัดเจนที่สุดแสดงให้เห็นโดย Kyle Macdonald ซึ่งใช้โครงข่ายประสาทเทียมเพื่อเดินเล่นรอบๆ อัมสเตอร์ดัม เครือข่ายกำหนดได้ทันทีว่าสิ่งใดอยู่ข้างหน้า และเกือบทุกครั้ง:

โครงข่ายประสาทเทียมนั้นเรียนรู้ด้วยตนเองอย่างต่อเนื่อง

ผ่านกระบวนการนี้:

1. Skype ได้แนะนำความเป็นไปได้ของการแปลพร้อมกัน 10 ภาษา มีรัสเซียและญี่ปุ่นอยู่ครู่หนึ่งซึ่งเป็นหนึ่งในประเทศที่ยากที่สุดในโลก แน่นอน คุณภาพของงานแปลจำเป็นต้องปรับปรุงอย่างจริงจัง แต่ความจริงที่ว่าแม้ตอนนี้คุณสามารถสื่อสารกับเพื่อนร่วมงานจากญี่ปุ่นเป็นภาษารัสเซียและต้องแน่ใจว่าคุณจะเข้าใจเป็นแรงบันดาลใจ

2. ยานเดกซ์สร้างอัลกอริธึมการค้นหาสองอัลกอริธึมตามเครือข่ายประสาท: Palekh และ Korolev อันแรกช่วยในการค้นหาไซต์ที่เกี่ยวข้องมากที่สุดสำหรับข้อความค้นหาความถี่ต่ำ "Palekh" ศึกษาชื่อหน้าและเปรียบเทียบความหมายกับความหมายของข้อความค้นหา บนพื้นฐานของ Palekh Korolev ก็ปรากฏตัวขึ้น อัลกอริธึมนี้ไม่เพียงแต่ประเมินชื่อเท่านั้น แต่ยังประเมินเนื้อหาข้อความทั้งหมดของหน้าด้วย การค้นหามีความแม่นยำมากขึ้น และเจ้าของเว็บไซต์เริ่มเข้าถึงเนื้อหาของหน้าอย่างชาญฉลาดยิ่งขึ้น

3. เพื่อนร่วมงานของผู้เชี่ยวชาญ SEO จากยานเดกซ์ได้สร้างเครือข่ายประสาทเทียมทางดนตรีซึ่งประกอบไปด้วยบทกวีและเขียนเพลง Neurogroup มีสัญลักษณ์เรียกว่า Neurona และพวกเขามีอัลบั้มแรกอยู่แล้ว:

4. Google Inbox ใช้โครงข่ายประสาทเทียมในการตอบกลับข้อความ การพัฒนาเทคโนโลยีกำลังดำเนินไปอย่างเต็มกำลัง และวันนี้เครือข่ายกำลังศึกษาการติดต่อสื่อสารและสร้างคำตอบที่เป็นไปได้ คุณไม่สามารถเสียเวลาพิมพ์และไม่ต้องกลัวที่จะลืมข้อตกลงที่สำคัญบางอย่าง

5. YouTube ใช้โครงข่ายประสาทเทียมเพื่อจัดอันดับวิดีโอ และตามหลักการสองข้อในคราวเดียว: เครือข่ายประสาทหนึ่งศึกษาวิดีโอและปฏิกิริยาของผู้ชมที่มีต่อวิดีโอ อีกส่วนหนึ่งดำเนินการวิจัยเกี่ยวกับผู้ใช้และความชอบของพวกเขา นั่นคือเหตุผลที่คำแนะนำของ YouTube อยู่ในหัวข้อเสมอ

6. Facebook กำลังทำงานอย่างแข็งขันใน DeepText AI ซึ่งเป็นโปรแกรมสื่อสารที่เข้าใจศัพท์แสงและล้างการแชทจากคำศัพท์ที่หยาบคาย

7. แอปพลิเคชันเช่น Prisma และ Fabby สร้างขึ้นบนโครงข่ายประสาทเทียม สร้างรูปภาพและวิดีโอ:

Colorize คืนค่าสีเป็นภาพถ่ายขาวดำ (คุณย่าเซอร์ไพรส์!)

MakeUp Plus เลือกลิปสติกที่สมบูรณ์แบบสำหรับเด็กผู้หญิงจากหลากหลายแบรนด์จริง: Bobbi Brown, Clinique, Lancome และ YSL อยู่ในธุรกิจแล้ว

Apple และ Microsoft อัพเกรดระบบประสาท Siri และ Contana อย่างต่อเนื่อง

โครงข่ายประสาทเทียม

จนถึงตอนนี้ พวกเขาเพียงทำตามคำสั่งของเรา แต่ในอนาคตอันใกล้ พวกเขาจะเริ่มใช้ความคิดริเริ่ม: เพื่อให้คำแนะนำและคาดการณ์ความต้องการของเรา

และมีอะไรอีกที่รอเราอยู่ในอนาคต?

โครงข่ายประสาทเทียมแบบเรียนรู้ด้วยตนเองสามารถแทนที่ผู้คนได้: พวกเขาจะเริ่มต้นด้วยนักเขียนคำโฆษณาและผู้ตรวจทาน หุ่นยนต์สร้างข้อความที่มีความหมายและไม่มีข้อผิดพลาด และพวกเขาทำได้เร็วกว่าคนมาก พวกเขาจะดำเนินการต่อกับพนักงานของคอลเซ็นเตอร์ การสนับสนุนทางเทคนิค ผู้ดูแล และผู้ดูแลระบบสาธารณะในเครือข่ายสังคม โครงข่ายประสาทเทียมรู้วิธีเรียนรู้สคริปต์และเล่นด้วยเสียงของคุณอยู่แล้ว แล้วในด้านอื่นๆ ล่ะ?

ภาคเกษตร

โครงข่ายประสาทเทียมจะถูกนำมาใช้ในอุปกรณ์พิเศษ การผสานจะขับเคลื่อนอัตโนมัติ สแกนพืช และศึกษาดิน ส่งข้อมูลไปยังโครงข่ายประสาทเทียม เธอจะตัดสินใจ - รดน้ำใส่ปุ๋ยหรือฉีดพ่นจากศัตรูพืช แทนที่จะเป็นคนงานสองสามโหล ผู้เชี่ยวชาญสองคนมีความจำเป็นสูงสุด: หัวหน้างานและผู้เชี่ยวชาญทางเทคนิค

ยา

Microsoft กำลังทำงานอย่างแข็งขันในการสร้างวิธีรักษาโรคมะเร็ง นักวิทยาศาสตร์มีส่วนร่วมในการเขียนโปรแกรมชีวภาพ - พวกเขากำลังพยายามทำให้กระบวนการของการเกิดขึ้นและการพัฒนาของเนื้องอกเป็นแบบดิจิทัล เมื่อทุกอย่างเรียบร้อย โปรแกรมเมอร์จะสามารถหาวิธีป้องกันกระบวนการดังกล่าว โดยการเปรียบเทียบ ยาจะถูกสร้างขึ้น

การตลาด

การตลาดมีความเฉพาะตัวสูง แล้ว โครงข่ายประสาทเทียมสามารถกำหนดได้ในไม่กี่วินาทีว่าผู้ใช้รายใด เนื้อหาใด และราคาเท่าไหร่ที่จะแสดง ในอนาคต การมีส่วนร่วมของนักการตลาดในกระบวนการจะลดลงเหลือน้อยที่สุด: โครงข่ายประสาทเทียมจะคาดการณ์คำขอโดยพิจารณาจากข้อมูลเกี่ยวกับพฤติกรรมของผู้ใช้ สแกนตลาด และออกข้อเสนอที่เหมาะสมที่สุดในเวลาที่คนคิดจะซื้อ

อีคอมเมิร์ซ

อีคอมเมิร์ซจะดำเนินการทุกที่ คุณไม่จำเป็นต้องไปที่ร้านค้าออนไลน์โดยใช้ลิงก์อีกต่อไป: คุณสามารถซื้อทุกอย่างที่เห็นได้ในคลิกเดียว

ตัวอย่างเช่น คุณกำลังอ่านบทความนี้ในอีกไม่กี่ปีต่อมา คุณชอบลิปสติกบนหน้าจอจากแอป MakeUp Plus มาก (ดูด้านบน) คุณคลิกที่มันและตรงไปที่รถเข็น หรือดูวิดีโอเกี่ยวกับ Hololens ล่าสุด (แว่นตาผสมความเป็นจริง) และสั่งซื้อได้จาก YouTube

ในเกือบทุกสาขา ผู้เชี่ยวชาญที่มีความรู้หรืออย่างน้อยก็เข้าใจโครงสร้างของโครงข่ายประสาทเทียม แมชชีนเลิร์นนิง และระบบปัญญาประดิษฐ์จะมีคุณค่า เราจะอยู่เคียงข้างกับหุ่นยนต์ และยิ่งเรารู้เรื่องพวกนี้มากเท่าไหร่ เราก็จะยิ่งสงบมากขึ้นเท่านั้น

ป.ล. Zinaida Falls เป็นเครือข่ายประสาท Yandex ที่เขียนบทกวี ให้คะแนนงานที่เครื่องเขียนโดยได้เรียนรู้เกี่ยวกับ Mayakovsky (รักษาการสะกดและเครื่องหมายวรรคตอน):

« มัน»

นี่คือ
แค่
บางสิ่งบางอย่าง
ต่อไปในอนาคต
และอำนาจ
คนนั้น
มีทุกอย่างหรือไม่
มีเลือดอยู่รอบตัว
ข้อเสนอ
อ้วน
ความรุ่งโรจน์ที่
ที่ดิน
มีรอยแตกในจงอยปาก

น่าประทับใจใช่มั้ย?

โครงข่ายประสาทเทียมสำหรับหุ่น

ทุกวันนี้ ทุกซอกทุกมุม ทุกมุม ผู้คนต่างพากันโวยวายถึงประโยชน์ของโครงข่ายประสาทเทียม แต่มันคืออะไร มีเพียงไม่กี่คนที่เข้าใจจริงๆ หากคุณหันไปหาคำอธิบายในวิกิพีเดีย สมองของคุณจะหมุนจากความสูงของป้อมปราการของคำศัพท์ทางวิทยาศาสตร์และคำจำกัดความที่สร้างขึ้นที่นั่น หากคุณห่างไกลจากพันธุวิศวกรรมและภาษาที่สับสนของหนังสือเรียนมหาวิทยาลัยทำให้เกิดความสับสนและไม่มีความคิด เรามาพยายามทำความเข้าใจปัญหาของโครงข่ายประสาทร่วมกัน

หากสมองของมนุษย์ประกอบด้วยเซลล์ประสาท เราจะตกลงตามเงื่อนไขว่าเซลล์ประสาทอิเล็กทรอนิกส์เป็นกล่องจินตภาพชนิดหนึ่งที่มีช่องทางเข้าและทางออกเดียว

อัลกอริธึมภายในของเซลล์ประสาทกำหนดขั้นตอนการประมวลผลและวิเคราะห์ข้อมูลที่ได้รับและแปลงเป็นคลังความรู้เดียวที่มีประโยชน์ ขึ้นอยู่กับว่าอินพุตและเอาต์พุตทำงานได้ดีเพียงใด ทั้งระบบอาจคิดเร็ว หรือในทางกลับกัน อาจทำงานช้าลงได้

สำคัญ

เมื่อเขียนรหัสหลัก คุณต้องอธิบายการกระทำของคุณอย่างแท้จริงด้วยนิ้วมือ หากเราทำงานกับรูปภาพ ในระยะแรก ค่าสำหรับเราจะเป็นขนาดและระดับของมัน หากคุณสมบัติแรกบอกเราถึงจำนวนอินพุต ตัวที่สองจะช่วยให้โครงข่ายประสาทเทียมจัดการกับข้อมูลได้

โครงข่ายประสาทเทียม: มันคืออะไรและทำงานอย่างไร

ตามหลักการแล้ว หลังจากที่โหลดข้อมูลหลักและเปรียบเทียบโทโพโลยีของคลาสแล้ว โครงข่ายประสาทเทียมจะสามารถจำแนกข้อมูลใหม่ได้เอง สมมติว่าเราตัดสินใจอัปโหลดภาพขนาด 3x5 พิกเซล เลขคณิตอย่างง่ายจะบอกเราว่าจะมีอินพุต 3*5=15 ตัว และการจำแนกประเภทนั้นจะกำหนดจำนวนทางออกทั้งหมดนั่นคือ เซลล์ประสาท อีกตัวอย่างหนึ่ง: โครงข่ายประสาทเทียมจำเป็นต้องจดจำตัวอักษร "C" เกณฑ์ที่ระบุตรงกับตัวอักษรทั้งหมด ซึ่งจะต้องมีเซลล์ประสาทหนึ่งเซลล์ที่มีจำนวนอินพุตเท่ากับขนาดของภาพ

เช่นเดียวกับการฝึกอบรมใด ๆ นักเรียนควรได้รับการลงโทษสำหรับคำตอบที่ผิด แต่เราจะไม่ให้อะไรกับคำตอบที่ถูกต้อง หากโปรแกรมรับรู้คำตอบที่ถูกต้องว่าเป็นเท็จ เราจะเพิ่มน้ำหนักอินพุตในแต่ละไซแนปส์ ในทางกลับกัน หากผลลัพธ์ไม่ถูกต้อง โปรแกรมพิจารณาผลลัพธ์เป็นบวกหรือจริง เราจะลบน้ำหนักออกจากแต่ละอินพุตไปยังเซลล์ประสาท มีเหตุผลมากกว่าที่จะเริ่มต้นเรียนรู้โดยทำความรู้จักกับสัญลักษณ์ที่เราต้องการ ผลลัพธ์แรกจะไม่ถูกต้อง อย่างไรก็ตาม โดยการแก้ไขโค้ดเล็กน้อย โปรแกรมจะทำงานอย่างถูกต้องในระหว่างการทำงานต่อไป ตัวอย่างที่กำหนดของอัลกอริทึมสำหรับการสร้างรหัสสำหรับโครงข่ายประสาทเทียมเรียกว่าพาร์เซตรอน

โครงข่ายประสาท

โครงข่ายประสาทเทียมสำหรับหุ่น

ทุกวันนี้ ทุกซอกทุกมุม ทุกมุม ผู้คนต่างพากันโวยวายถึงประโยชน์ของโครงข่ายประสาทเทียม แต่มันคืออะไร มีเพียงไม่กี่คนที่เข้าใจจริงๆ

เขียนโครงข่ายประสาทของคุณเอง: คำแนะนำทีละขั้นตอน

หากคุณหันไปหาคำอธิบายในวิกิพีเดีย สมองของคุณจะหมุนจากความสูงของป้อมปราการของคำศัพท์ทางวิทยาศาสตร์และคำจำกัดความที่สร้างขึ้นที่นั่น หากคุณห่างไกลจากพันธุวิศวกรรมและภาษาที่สับสนของหนังสือเรียนมหาวิทยาลัยทำให้เกิดความสับสนและไม่มีความคิด เรามาพยายามทำความเข้าใจปัญหาของโครงข่ายประสาทร่วมกัน

เพื่อให้เข้าใจปัญหา คุณต้องค้นหาสาเหตุที่แท้จริงซึ่งอยู่บนพื้นผิวทั้งหมด เมื่อนึกถึงซาร่าห์ คอนเนอร์ เราเข้าใจด้วยความตกใจว่า Warren McCulloch และ Walter Pitts ผู้บุกเบิกการพัฒนาคอมพิวเตอร์ที่เคยบุกเบิกได้ดำเนินตามเป้าหมายที่เห็นแก่ตัวในการสร้างปัญญาประดิษฐ์เครื่องแรก

โครงข่ายประสาทเทียมคือต้นแบบอิเล็กทรอนิกส์ของระบบการเรียนรู้ด้วยตนเอง เช่นเดียวกับเด็ก โครงข่ายประสาทเทียมดูดซับข้อมูล เคี้ยวข้อมูล เก็บเกี่ยวประสบการณ์ และเรียนรู้ ในกระบวนการเรียนรู้ เครือข่ายดังกล่าวจะพัฒนา เติบโต และสามารถสรุปผลและตัดสินใจได้ด้วยตนเอง

หากสมองของมนุษย์ประกอบด้วยเซลล์ประสาท เราจะตกลงตามเงื่อนไขว่าเซลล์ประสาทอิเล็กทรอนิกส์เป็นกล่องจินตภาพชนิดหนึ่งที่มีช่องทางเข้าและทางออกเดียว อัลกอริธึมภายในของเซลล์ประสาทกำหนดขั้นตอนการประมวลผลและวิเคราะห์ข้อมูลที่ได้รับและแปลงเป็นคลังความรู้เดียวที่มีประโยชน์ ขึ้นอยู่กับว่าอินพุตและเอาต์พุตทำงานได้ดีเพียงใด ทั้งระบบอาจคิดเร็ว หรือในทางกลับกัน อาจทำงานช้าลงได้

สำคัญ: ตามกฎแล้ว ข้อมูลแอนะล็อกจะถูกใช้ในโครงข่ายประสาทเทียม

เราขอย้ำอีกครั้งว่าอาจมีกระแสข้อมูลอินพุตจำนวนมาก (ในแง่วิทยาศาสตร์ การเชื่อมต่อของข้อมูลเบื้องต้นและ "เซลล์ประสาท" ของเราเรียกว่า ไซแนปส์) และทั้งหมดนี้มีลักษณะที่แตกต่างกันและมีนัยสำคัญที่ไม่เท่ากัน ตัวอย่างเช่น บุคคลรับรู้โลกรอบตัวเขาผ่านอวัยวะที่มองเห็น สัมผัส และดมกลิ่น มีเหตุผลว่าการมองเห็นสำคัญกว่ากลิ่น ขึ้นอยู่กับสถานการณ์ในชีวิตที่แตกต่างกัน เราใช้อวัยวะรับความรู้สึกบางอย่าง: ในความมืดสนิท การสัมผัสและการได้ยินมาถึงเบื้องหน้า ไซแนปส์ในโครงข่ายประสาทเทียมโดยการเปรียบเทียบเดียวกันในสถานการณ์ที่ต่างกันจะมีนัยสำคัญต่างกัน ซึ่งมักจะแสดงด้วยน้ำหนักของการเชื่อมต่อ เมื่อเขียนโค้ด จะมีการกำหนดเกณฑ์ขั้นต่ำสำหรับการส่งข้อมูล หากน้ำหนักของการเชื่อมต่อสูงกว่าค่าที่ระบุ ผลลัพธ์ของการตรวจสอบโดยเซลล์ประสาทจะเป็นค่าบวก (และเท่ากับหนึ่งในระบบเลขฐานสอง) หากน้อยกว่า แสดงว่าเป็นค่าลบ เป็นตรรกะที่ตั้งค่าแถบให้สูง การทำงานของโครงข่ายประสาทเทียมจะมีความแม่นยำมากขึ้น แต่จะใช้เวลานานกว่า

เพื่อให้โครงข่ายประสาททำงานได้อย่างถูกต้อง คุณต้องใช้เวลาในการฝึกฝน - นี่คือข้อแตกต่างหลักจากอัลกอริธึมแบบตั้งโปรแกรมง่าย ๆ เช่นเดียวกับเด็กเล็ก โครงข่ายประสาทเทียมต้องการฐานข้อมูลเริ่มต้น แต่ถ้ารหัสเริ่มต้นถูกเขียนอย่างถูกต้อง โครงข่ายประสาทเทียมจะไม่เพียงแต่จะสามารถเลือกได้อย่างถูกต้องจากข้อมูลที่มีอยู่เท่านั้น แต่ยังสร้างสมมติฐานที่เป็นอิสระอีกด้วย

เมื่อเขียนรหัสหลัก คุณต้องอธิบายการกระทำของคุณอย่างแท้จริงด้วยนิ้วมือ หากเราทำงานกับรูปภาพ ในระยะแรก ค่าสำหรับเราจะเป็นขนาดและระดับของมัน หากคุณสมบัติแรกบอกเราถึงจำนวนอินพุต ตัวที่สองจะช่วยให้โครงข่ายประสาทเทียมจัดการกับข้อมูลได้ ตามหลักการแล้ว หลังจากที่โหลดข้อมูลหลักและเปรียบเทียบโทโพโลยีของคลาสแล้ว โครงข่ายประสาทเทียมจะสามารถจำแนกข้อมูลใหม่ได้เอง สมมติว่าเราตัดสินใจอัปโหลดภาพขนาด 3x5 พิกเซล เลขคณิตอย่างง่ายจะบอกเราว่าจะมีอินพุต 3*5=15 ตัว และการจำแนกประเภทนั้นจะกำหนดจำนวนทางออกทั้งหมดนั่นคือ เซลล์ประสาท อีกตัวอย่างหนึ่ง: โครงข่ายประสาทเทียมจำเป็นต้องจดจำตัวอักษร "C" เกณฑ์ที่ระบุตรงกับตัวอักษรทั้งหมด ซึ่งจะต้องมีเซลล์ประสาทหนึ่งเซลล์ที่มีจำนวนอินพุตเท่ากับขนาดของภาพ

สมมุติว่าขนาดจะเท่ากับ 3x5 พิกเซล โดยการป้อนรูปภาพตัวอักษรหรือตัวเลขต่างๆ ให้กับโปรแกรม เราจะสอนให้โปรแกรมกำหนดภาพตัวละครที่เราต้องการ

เช่นเดียวกับการฝึกอบรมใด ๆ นักเรียนควรได้รับการลงโทษสำหรับคำตอบที่ผิด แต่เราจะไม่ให้อะไรกับคำตอบที่ถูกต้อง หากโปรแกรมรับรู้คำตอบที่ถูกต้องว่าเป็นเท็จ เราจะเพิ่มน้ำหนักอินพุตในแต่ละไซแนปส์ ในทางกลับกัน หากผลลัพธ์ไม่ถูกต้อง โปรแกรมพิจารณาผลลัพธ์เป็นบวกหรือจริง เราจะลบน้ำหนักออกจากแต่ละอินพุตไปยังเซลล์ประสาท มีเหตุผลมากกว่าที่จะเริ่มต้นเรียนรู้โดยทำความรู้จักกับสัญลักษณ์ที่เราต้องการ ผลลัพธ์แรกจะไม่ถูกต้อง อย่างไรก็ตาม โดยการแก้ไขโค้ดเล็กน้อย โปรแกรมจะทำงานอย่างถูกต้องในระหว่างการทำงานต่อไป

ตัวอย่างที่กำหนดของอัลกอริทึมสำหรับการสร้างรหัสสำหรับโครงข่ายประสาทเทียมเรียกว่าพาร์เซตรอน

นอกจากนี้ยังมีตัวเลือกที่ซับซ้อนมากขึ้นสำหรับการทำงานของโครงข่ายประสาทเทียมด้วยการส่งคืนข้อมูลที่ไม่ถูกต้อง การวิเคราะห์ และข้อสรุปเชิงตรรกะของเครือข่ายเอง ตัวอย่างเช่น เครื่องทำนายอนาคตออนไลน์ค่อนข้างเป็นโครงข่ายประสาทเทียมที่ตั้งโปรแกรมไว้ โปรแกรมดังกล่าวสามารถเรียนรู้ได้ทั้งแบบมีและไม่มีครู และเรียกว่าการสะท้อนแบบปรับตัว สาระสำคัญของพวกเขาอยู่ในความจริงที่ว่าเซลล์ประสาทมีความคิดของตัวเองอยู่แล้วเกี่ยวกับความคาดหวังว่าพวกเขาต้องการรับข้อมูลประเภทใดและในรูปแบบใด ระหว่างความคาดหวังกับความเป็นจริง มีสิ่งที่เรียกว่าการเฝ้าระแวดระวังของเซลล์ประสาท ซึ่งช่วยให้เครือข่ายจำแนกข้อมูลที่เข้ามาได้อย่างถูกต้องและไม่พลาดแม้แต่พิกเซลเดียว คุณลักษณะของโครงข่ายประสาทเทียม AR คือการเรียนรู้ด้วยตัวเองตั้งแต่ต้น โดยกำหนดเกณฑ์ของความระมัดระวังเส้นประสาทอย่างอิสระ ซึ่งในทางกลับกันก็มีบทบาทในการจำแนกข้อมูล: ยิ่งเครือข่ายระมัดระวังมากขึ้นเท่าไหร่ก็ยิ่งมีความพิถีพิถันมากขึ้นเท่านั้น

เราได้รับความรู้เบื้องต้นเกี่ยวกับโครงข่ายประสาทเทียมแล้ว ทีนี้มาลองสรุปข้อมูลที่ได้รับกัน ดังนั้น, โครงข่ายประสาทเป็นต้นแบบทางอิเล็กทรอนิกส์ของความคิดของมนุษย์ ประกอบด้วยเซลล์ประสาทอิเล็กทรอนิกส์และไซแนปส์ - ข้อมูลไหลเข้าและออกจากเซลล์ประสาท โครงข่ายประสาทเทียมได้รับการตั้งโปรแกรมตามหลักการเรียนรู้กับครู (โปรแกรมเมอร์ที่อัปโหลดข้อมูลหลัก) หรือโดยอิสระ (ตามสมมติฐานและความคาดหวังจากข้อมูลที่ได้รับ ซึ่งกำหนดโดยโปรแกรมเมอร์คนเดียวกัน) ด้วยความช่วยเหลือของโครงข่ายประสาทเทียม คุณสามารถสร้างระบบใดก็ได้ ตั้งแต่การตรวจจับรูปแบบอย่างง่ายบนภาพพิกเซล ไปจนถึงการวินิจฉัยทางจิตและการวิเคราะห์ทางเศรษฐกิจ

โครงข่ายประสาทเทียม,
วิธีการวิเคราะห์ข้อมูล:
จากการวิจัยสู่การพัฒนาและการนำไปปฏิบัติ

บ้าน
บริการ
โครงข่ายประสาทเทียม
ความคิดพื้นฐาน
ความสามารถ
ประโยชน์

วิธีใช้
การเขียนโปรแกรม
ความแม่นยำของโซลูชัน
NS และ AI
โปรแกรม
บทความ
บล็อก
เกี่ยวกับผู้เขียน / ผู้ติดต่อ

ข้อความที่ถูกต้องของคำถามควรเป็นดังนี้: วิธีฝึกโครงข่ายประสาทเทียมของคุณเอง คุณไม่จำเป็นต้องเขียนเครือข่ายด้วยตัวเอง คุณต้องใช้การติดตั้งแบบสำเร็จรูปซึ่งมีอยู่มากมาย ซึ่งผู้เขียนคนก่อนๆ ได้ให้ลิงก์ไว้ แต่ในตัวของมันเอง การใช้งานนี้เหมือนกับคอมพิวเตอร์ที่ไม่ได้ดาวน์โหลดโปรแกรมใดๆ จะต้องสอนเครือข่ายให้แก้ปัญหาได้

และนี่คือสิ่งที่สำคัญที่สุดที่คุณต้องการสำหรับสิ่งนี้: DATA มีตัวอย่างงานมากมายที่จะป้อนเข้าสู่โครงข่ายประสาทเทียม และคำตอบที่ถูกต้องสำหรับงานเหล่านี้ โครงข่ายประสาทจะเรียนรู้จากสิ่งนี้เพื่อให้คำตอบที่ถูกต้องเหล่านี้โดยอิสระ

และมีรายละเอียดและความแตกต่างมากมายที่คุณต้องรู้และเข้าใจเพื่อให้ทั้งหมดนี้มีโอกาสที่จะให้ผลลัพธ์ที่ยอมรับได้ มันไม่สมจริงที่จะกล่าวถึงทั้งหมดที่นี่ ดังนั้นฉันจะระบุบางประเด็น อันดับแรก ปริมาณข้อมูล นี่เป็นจุดที่สำคัญมาก บริษัทขนาดใหญ่ที่มีกิจกรรมที่เกี่ยวข้องกับการเรียนรู้ของเครื่องมักประกอบด้วยแผนกพิเศษและพนักงานที่ทุ่มเทให้กับการรวบรวมและประมวลผลข้อมูลสำหรับการฝึกอบรมโครงข่ายประสาทเทียมเท่านั้น บ่อยครั้งที่ต้องซื้อข้อมูล และกิจกรรมทั้งหมดนี้ส่งผลให้เกิดรายการค่าใช้จ่ายที่เห็นได้ชัดเจน ประการที่สอง การนำเสนอข้อมูล หากแต่ละอ็อบเจ็กต์ในปัญหาของคุณแสดงด้วยพารามิเตอร์ตัวเลขจำนวนค่อนข้างน้อย ก็มีโอกาสที่พวกมันจะถูกส่งตรงไปยังโครงข่ายประสาทเทียมในรูปแบบดิบและได้รับผลลัพธ์ที่ยอมรับได้ แต่ถ้าวัตถุนั้นซับซ้อน (ภาพ เสียง วัตถุที่มีมิติผันแปร) เป็นไปได้มากว่าคุณจะต้องใช้เวลาและความพยายามในการดึงเอาคุณลักษณะที่มีความหมายออกจากสิ่งเหล่านี้เพื่อแก้ไขปัญหา การดำเนินการนี้เพียงอย่างเดียวอาจใช้เวลานานมากและมีผลกระทบต่อผลลัพธ์สุดท้ายมากกว่าประเภทและสถาปัตยกรรมของโครงข่ายประสาทเทียมที่เลือกใช้

ไม่ใช่เรื่องแปลกที่ข้อมูลจริงจะดิบเกินไปและไม่เหมาะสมสำหรับการใช้งานโดยไม่ต้องประมวลผลล่วงหน้า: ประกอบด้วยช่องว่าง สัญญาณรบกวน ความขัดแย้ง และข้อผิดพลาด

ข้อมูลควรถูกเก็บรวบรวมไม่เพียงแต่อย่างมีประสิทธิภาพและรอบคอบ มิฉะนั้น เครือข่ายที่ได้รับการฝึกอบรมอาจมีพฤติกรรมแปลก ๆ และแม้กระทั่งแก้ไขงานที่แตกต่างไปจากที่ผู้เขียนตั้งใจไว้โดยสิ้นเชิง

คุณต้องจินตนาการถึงวิธีการจัดระเบียบกระบวนการเรียนรู้อย่างมีประสิทธิภาพเพื่อไม่ให้เครือข่ายถูก overtrained ต้องเลือกความซับซ้อนของเครือข่ายตามขนาดของข้อมูลและปริมาณ ข้อมูลบางส่วนจะต้องถูกกันไว้สำหรับการทดสอบและไม่ใช้ในระหว่างการฝึกอบรมเพื่อประเมินคุณภาพที่แท้จริงของงาน บางครั้ง คุณจำเป็นต้องกำหนดน้ำหนักที่แตกต่างกันให้กับวัตถุต่างๆ จากชุดการฝึก บางครั้งก็มีประโยชน์ที่จะเปลี่ยนน้ำหนักเหล่านี้ในระหว่างกระบวนการเรียนรู้ บางครั้งการเริ่มฝึกเกี่ยวกับข้อมูลบางส่วนก็มีประโยชน์ และในขณะที่คุณเรียนรู้ ให้เพิ่มข้อมูลที่เหลือ โดยทั่วไปแล้วสิ่งนี้สามารถเปรียบเทียบได้กับการทำอาหาร: แม่บ้านแต่ละคนมีวิธีการทำอาหารของตัวเองแม้จะเป็นอาหารจานเดียวกัน


คำศัพท์หลายคำในโครงข่ายประสาทเทียมมีความเกี่ยวข้องกับชีววิทยา เรามาเริ่มกันตั้งแต่ต้น:

สมองเป็นสิ่งที่ซับซ้อน แต่ก็สามารถแบ่งออกเป็นส่วนหลักและการดำเนินงานได้หลายส่วน:

สาเหตุอาจเป็น ภายใน(เช่น รูปภาพหรือแนวคิด):

ทีนี้มาดูพื้นฐานและแบบง่ายกัน ชิ้นส่วนสมอง:


สมองก็เหมือนเครือข่ายเคเบิล

เซลล์ประสาท- หน่วยการคำนวณหลักในสมอง รับและประมวลผลสัญญาณทางเคมีของเซลล์ประสาทอื่นๆ และขึ้นอยู่กับปัจจัยหลายประการ ทั้งที่ไม่ทำอะไรเลยหรือสร้างแรงกระตุ้นทางไฟฟ้า หรือ Action Potential ซึ่งจะส่งสัญญาณไปยังเซลล์ประสาทข้างเคียง ผ่านไซแนปส์ ที่เกี่ยวข้องเซลล์ประสาท:

ความฝัน ความทรงจำ การเคลื่อนไหวที่ควบคุมตนเอง ปฏิกิริยาตอบสนอง และทุกอย่างที่คุณคิดหรือทำ - ทุกสิ่งเกิดขึ้นได้ด้วยกระบวนการนี้: เซลล์ประสาทนับล้านหรือหลายพันล้านเซลล์ทำงานในระดับต่างๆ และสร้างการเชื่อมต่อที่สร้างระบบย่อยคู่ขนานต่างๆ และเป็นตัวแทนทางชีววิทยา โครงข่ายประสาท สุทธิ.

แน่นอน สิ่งเหล่านี้ล้วนเป็นการทำให้เข้าใจง่ายและเป็นภาพรวม แต่ต้องขอบคุณสิ่งเหล่านี้ เราสามารถอธิบายเรื่องง่าย ๆ ได้
โครงข่ายประสาทเทียม:

และอธิบายให้เป็นทางการโดยใช้กราฟ:

จำเป็นต้องมีคำอธิบายบางอย่างที่นี่ วงกลมคือเซลล์ประสาท และเส้นคือความเชื่อมโยงระหว่างพวกมัน
และเพื่อไม่ให้ซับซ้อนในขั้นตอนนี้ การเชื่อมต่อโครงข่ายแสดงถึงกระแสข้อมูลโดยตรง จากซ้ายไปขวา. เซลล์ประสาทเซลล์แรกทำงานอยู่และไฮไลต์เป็นสีเทา นอกจากนี้เรายังกำหนดหมายเลขให้กับมัน (1 ถ้าใช้งานได้ 0 ถ้าไม่ได้) ตัวเลขระหว่างเซลล์ประสาทแสดง น้ำหนักการเชื่อมต่อ

กราฟด้านบนแสดงเวลาของเครือข่าย เพื่อให้แสดงผลได้แม่นยำยิ่งขึ้น คุณต้องแบ่งออกเป็นช่วงเวลา:

ในการสร้างโครงข่ายประสาทของคุณเอง คุณต้องเข้าใจว่าน้ำหนักส่งผลต่อเซลล์ประสาทอย่างไรและเซลล์ประสาทเรียนรู้อย่างไร ตัวอย่างเช่น ลองใช้กระต่าย (กระต่ายทดสอบ) และใส่ไว้ในเงื่อนไขของการทดลองแบบคลาสสิก

เมื่อมีการส่งกระแสลมที่ปลอดภัยไปยังพวกเขา กระต่ายก็เหมือนคนจะกะพริบ:

โมเดลพฤติกรรมนี้สามารถวาดได้ด้วยกราฟ:

ในแผนภาพที่แล้ว กราฟเหล่านี้แสดงเฉพาะช่วงเวลาที่กระต่ายรู้สึกหายใจ และเราทำให้ เข้ารหัสพัฟเป็นค่าบูลีน นอกจากนี้ เราคำนวณว่าเซลล์ประสาทที่สองยิงโดยพิจารณาจากค่าน้ำหนักหรือไม่ ถ้ามันเท่ากับ 1 เซลล์ประสาทรับความรู้สึกก็จะยิงเรากะพริบตา ถ้าน้ำหนักน้อยกว่า 1 เราจะไม่กะพริบ: เซลล์ประสาทที่สอง ขีดจำกัด- 1.

มาแนะนำอีกหนึ่งองค์ประกอบ - สัญญาณเสียงที่ปลอดภัย:

เราสามารถจำลองความสนใจของกระต่ายได้ดังนี้:

ข้อแตกต่างที่สำคัญคือตอนนี้น้ำหนักอยู่ที่ ศูนย์ดังนั้นเราจึงไม่ได้กระต่ายกระพริบ อย่างน้อย ก็ยังไม่ใช่ ตอนนี้เราจะสอนกระต่ายให้กระพริบตาตามคำสั่งผสม
สารระคายเคือง (บี๊บและลมหายใจ):

สิ่งสำคัญคือเหตุการณ์เหล่านี้จะเกิดขึ้นในเวลาที่ต่างกัน ยุคในกราฟจะมีลักษณะดังนี้:

ตัวเสียงไม่ได้ทำอะไรเลย แต่กระแสลมยังคงทำให้กระต่ายกะพริบตา และเราจะแสดงสิ่งนี้ผ่านตุ้มน้ำหนักคูณกับสิ่งเร้า (สีแดง)

การศึกษาพฤติกรรมที่ซับซ้อนสามารถทำให้ง่ายขึ้นได้เมื่อมีการเปลี่ยนแปลงน้ำหนักระหว่างเซลล์ประสาทที่เชื่อมต่อกันทีละน้อยเมื่อเวลาผ่านไป

ในการฝึกกระต่าย ให้ทำซ้ำขั้นตอน:

สำหรับการทดลองสามครั้งแรก ไดอะแกรมจะมีลักษณะดังนี้:

โปรดทราบว่าน้ำหนักของการกระตุ้นเสียงจะเพิ่มขึ้นหลังจากการทำซ้ำแต่ละครั้ง (เน้นด้วยสีแดง) ค่านี้เป็นค่าปกติ - เราเลือก 0.30 แต่ตัวเลขสามารถเป็นอะไรก็ได้ แม้แต่ค่าลบ หลังจากการทำซ้ำครั้งที่สาม คุณจะไม่สังเกตเห็นการเปลี่ยนแปลงในพฤติกรรมของกระต่าย แต่หลังจากการทำซ้ำครั้งที่สี่ สิ่งที่น่าอัศจรรย์จะเกิดขึ้น - พฤติกรรมจะเปลี่ยนไป

เราลบการสัมผัสกับอากาศ แต่กระต่ายยังคงกะพริบเมื่อได้ยินเสียงบี๊บ! แผนผังสุดท้ายของเราสามารถอธิบายพฤติกรรมนี้ได้:

เราฝึกให้กระต่ายตอบสนองต่อเสียงด้วยการกะพริบตา


ในการทดลองจริงในลักษณะนี้ อาจต้องทำซ้ำมากกว่า 60 ครั้งเพื่อให้ได้ผลลัพธ์

ตอนนี้เราจะออกจากโลกชีวภาพของสมองและกระต่ายและพยายามปรับทุกอย่างที่
เรียนรู้การสร้างโครงข่ายประสาทเทียม ขั้นแรก เรามาลองทำภารกิจง่ายๆ กันก่อน

สมมติว่าเรามีเครื่องที่มีปุ่มสี่ปุ่มสำหรับจ่ายอาหารเมื่อกดอันที่ถูกต้อง
ปุ่ม (ดีหรือพลังงานถ้าคุณเป็นหุ่นยนต์) ภารกิจคือการค้นหาว่าปุ่มใดให้รางวัล:

เราสามารถอธิบาย (แผนผัง) ว่าปุ่มทำอะไรเมื่อกดดังนี้:

เป็นการดีกว่าที่จะแก้ปัญหาโดยรวม ดังนั้นลองดูผลลัพธ์ที่เป็นไปได้ทั้งหมด รวมถึงผลลัพธ์ที่ถูกต้อง:


คลิกที่ปุ่มที่ 3 เพื่อรับอาหารเย็นของคุณ

ในการสร้างโครงข่ายประสาทเทียมในโค้ด ก่อนอื่นเราต้องสร้างแบบจำลองหรือกราฟที่เครือข่ายสามารถจับคู่ได้ นี่คือกราฟที่เหมาะสมสำหรับงาน นอกจากนี้ ยังแสดงคู่ทางชีวภาพของมันด้วย:

โครงข่ายประสาทเทียมนี้เพียงแค่รับอินพุต - ในกรณีนี้จะเป็นการรับรู้ว่ามีการกดปุ่มใด ถัดไป เครือข่ายจะแทนที่ข้อมูลที่ป้อนด้วยน้ำหนัก และทำการสรุปโดยพิจารณาจากการเพิ่มเลเยอร์ ฟังดูสับสนเล็กน้อย แต่มาดูกันว่าปุ่มนี้แสดงในรูปแบบของเราอย่างไร:


โปรดทราบว่าน้ำหนักทั้งหมดเป็น 0 ดังนั้นโครงข่ายประสาทเช่นเดียวกับทารกจึงว่างเปล่าอย่างสมบูรณ์แต่เชื่อมต่อถึงกันอย่างสมบูรณ์

ดังนั้นเราจึงจับคู่เหตุการณ์ภายนอกกับเลเยอร์อินพุตของโครงข่ายประสาทเทียมและคำนวณค่าที่เอาต์พุต มันอาจจะใช่หรือไม่ตรงกับความเป็นจริงก็ได้ แต่เราจะเพิกเฉยต่อสิ่งนี้ในตอนนี้ และเริ่มอธิบายงานในลักษณะที่คอมพิวเตอร์เข้าใจได้ เริ่มต้นด้วยการป้อนน้ำหนัก (เราจะใช้ JavaScript):

อินพุต Var = ; var น้ำหนัก = ; // เพื่อความสะดวก สามารถเรียกเวกเตอร์เหล่านี้ได้
ขั้นตอนต่อไปคือการสร้างฟังก์ชันที่รวบรวมค่าอินพุตและน้ำหนักและคำนวณค่าเอาต์พุต:

ฟังก์ชันประเมินNeuralNetwork(inputVector, weightVector)( var result = 0; inputVector.forEach(function(inputValue, weightIndex) (layerValue = inputValue*weightVector; result += layerValue; )); return (result.toFixed(2)); ) / / อาจดูซับซ้อน แต่ทั้งหมดนั้นจับคู่น้ำหนัก/อินพุตและเพิ่มผลลัพธ์
อย่างที่คาดไว้ ถ้าเรารันโค้ดนี้ เราจะได้ผลลัพธ์แบบเดียวกับในโมเดลหรือกราฟของเรา...

ประเมินNeuralNetwork(อินพุต, น้ำหนัก); // 0.00
ตัวอย่างสด: Neural Net 001

ขั้นตอนต่อไปในการปรับปรุงโครงข่ายประสาทเทียมของเราจะเป็นวิธีตรวจสอบเอาท์พุตของตัวเองหรือค่าที่ได้เปรียบได้กับสถานการณ์จริง
ขั้นแรกให้เข้ารหัสความเป็นจริงนี้เป็นตัวแปร:

ในการตรวจสอบความไม่สอดคล้องกัน (และจำนวน) เราจะเพิ่มฟังก์ชันข้อผิดพลาด:

ข้อผิดพลาด = ความเป็นจริง - เอาต์พุตโครงข่ายประสาท
ด้วยสิ่งนี้ เราสามารถประเมินประสิทธิภาพของโครงข่ายประสาทเทียมของเรา:

แต่ที่สำคัญกว่านั้น - แล้วสถานการณ์ที่ความเป็นจริงให้ผลในเชิงบวกล่ะ?

ตอนนี้เรารู้แล้วว่าโมเดลโครงข่ายประสาทเทียมของเราใช้งานไม่ได้ (และเรารู้วิธี) เยี่ยมมาก! และนี่เป็นสิ่งที่ดีเพราะตอนนี้เราสามารถใช้ฟังก์ชันข้อผิดพลาดเพื่อควบคุมการฝึกของเราได้ แต่ทุกอย่างก็สมเหตุสมผลหากเรากำหนดฟังก์ชันข้อผิดพลาดใหม่ดังนี้:

ข้อผิดพลาด= ผลลัพธ์ที่ต้องการ- เอาท์พุทประสาทสุทธิ
ความแตกต่างที่ละเอียดอ่อนแต่สำคัญ บ่งบอกอย่างเงียบๆ ว่าเราจะ
ใช้ผลลัพธ์ในอดีตเปรียบเทียบกับการกระทำในอนาคต
(และสำหรับการเรียนรู้อย่างที่เราจะเห็นในภายหลัง) นี้ยังมีอยู่ในชีวิตจริงที่สมบูรณ์
รูปแบบซ้ำๆ จึงกลายเป็นกลยุทธ์เชิงวิวัฒนาการได้ (เอาล่ะ ใน
ส่วนใหญ่)

อินพุต var = ; var น้ำหนัก = ; vardesiredResult = 1;
และฟังก์ชั่นใหม่:

ฟังก์ชันประเมินNeuralNetError(desired,actual) ( return (ต้องการ - จริง); ) // หลังจากประเมินทั้งเครือข่ายและข้อผิดพลาด เราจะได้รับ: // "Neural Net output: 0.00 Error: 1"
ตัวอย่างสด: Neural Net 002

มาสรุปกัน. เราเริ่มต้นด้วยงาน สร้างแบบจำลองง่ายๆ ของมันในรูปแบบของโครงข่ายประสาทเทียม และมีวิธีวัดประสิทธิภาพของมันเทียบกับความเป็นจริงหรือผลลัพธ์ที่ต้องการ ตอนนี้เราต้องหาวิธีแก้ไขความไม่สอดคล้องกัน ซึ่งเป็นกระบวนการที่ทั้งคอมพิวเตอร์และมนุษย์ถือได้ว่าเป็นการเรียนรู้

วิธีการฝึกอบรมโครงข่ายประสาทเทียม?

พื้นฐานของการฝึกอบรมทั้งโครงข่ายประสาทเทียมและชีวภาพคือการทำซ้ำ
และ อัลกอริทึมการเรียนรู้ดังนั้นเราจึงจะทำงานร่วมกับพวกเขาแยกกัน มาเริ่มกันที่
อัลกอริทึมการเรียนรู้

โดยธรรมชาติแล้ว อัลกอริทึมการเรียนรู้จะเข้าใจว่าเป็นการเปลี่ยนแปลงทางกายภาพหรือทางเคมี
ลักษณะของเซลล์ประสาทหลังการทดลอง:

ภาพประกอบที่น่าทึ่งของการเปลี่ยนแปลงของเซลล์ประสาทสองเซลล์เมื่อเวลาผ่านไปในโค้ดและโมเดล "อัลกอริทึมการเรียนรู้" ของเราหมายความว่าเราจะเปลี่ยนแปลงสิ่งต่างๆ เมื่อเวลาผ่านไปเพื่อทำให้ชีวิตของเราง่ายขึ้น ลองเพิ่มตัวแปรเพื่อระบุว่าชีวิตง่ายขึ้นเพียงใด:

Var learningRate = 0.20; // ยิ่งค่ามาก กระบวนการเรียนรู้ก็จะยิ่งเร็วขึ้น :)
และมันจะเปลี่ยนไปอย่างไร?

สิ่งนี้จะเปลี่ยนน้ำหนัก (เหมือนกระต่าย!) โดยเฉพาะน้ำหนักของผลลัพธ์ที่เราต้องการ:

วิธีเขียนโค้ดอัลกอริธึมนั้นเป็นทางเลือกของคุณ เพื่อความง่าย ฉันได้เพิ่มปัจจัยการเรียนรู้ให้กับน้ำหนัก ซึ่งอยู่ในรูปแบบของฟังก์ชัน:

ฟังก์ชันเรียนรู้ (inputVector, weightVector) ( weightVector.forEach(ฟังก์ชัน(น้ำหนัก ดัชนี น้ำหนัก) ( if (inputVector > 0) ( weights = weight + learningRate; ) )); )
เมื่อใช้งาน ฟังก์ชันการฝึกนี้จะเพิ่มอัตราการเรียนรู้ของเราให้กับเวกเตอร์น้ำหนัก เซลล์ประสาทที่ใช้งานอยู่ก่อนและหลังรอบการฝึก (หรือทำซ้ำ) ผลลัพธ์จะเป็นดังนี้:

// เวกเตอร์น้ำหนักดั้งเดิม: // เอาต์พุต Neural Net: 0.00 ข้อผิดพลาด: 1 เรียนรู้ (อินพุต, น้ำหนัก); // New Weight vector: // Neural Net output: 0.20 Error: 0.8 // หากไม่ชัดเจน ผลลัพธ์ของ Neural Network จะอยู่ที่ 1 (ไก่ออก) ซึ่งเป็นสิ่งที่เราต้องการ ดังนั้นเราจึงสรุปได้ว่า กำลังเคลื่อนไปในทิศทางที่ถูกต้อง
ตัวอย่างสด: Neural Net 003

โอเค ตอนนี้เรากำลังเดินไปในทิศทางที่ถูกต้อง จิ๊กซอว์ชิ้นสุดท้ายจะเป็นการนำไปปฏิบัติ การทำซ้ำ.

มันไม่ได้ยากขนาดนั้น โดยธรรมชาติแล้ว เราแค่ทำสิ่งเดิมซ้ำแล้วซ้ำเล่า แต่ในโค้ด เราระบุจำนวนการทำซ้ำ:

การทดลอง Var = 6;
และการแนะนำฟังก์ชันจำนวนการทำซ้ำในเครือข่ายประสาทการฝึกอบรมของเราจะมีลักษณะดังนี้:

ฟังก์ชั่นรถไฟ(ทดลอง) ( สำหรับ (i = 0; i< trials; i++) { neuralNetResult = evaluateNeuralNetwork(input, weights); learn(input, weights); } }
และนี่คือรายงานฉบับสุดท้ายของเรา:

เอาต์พุต Neural Net: 0.00 ข้อผิดพลาด: 1.00 น้ำหนักเวกเตอร์: เอาต์พุต Neural Net: 0.20 ข้อผิดพลาด: 0.80 น้ำหนักเวกเตอร์: เอาต์พุต Neural Net: 0.40 ข้อผิดพลาด: 0.60 น้ำหนักเวกเตอร์: เอาต์พุต Neural Net: 0.60 ข้อผิดพลาด: 0.40 เวกเตอร์น้ำหนัก: เอาต์พุต Neural Net: 0.80 ข้อผิดพลาด : 0.20 Weight Vector: Neural Net output: 1.00 Error: 0.00 Weight Vector: // Chicken Dinner !
ตัวอย่างสด: Neural Net 004

ตอนนี้เรามีเวกเตอร์น้ำหนักที่จะสร้างผลลัพธ์เดียวเท่านั้น (ไก่สำหรับอาหารค่ำ) หากเวกเตอร์อินพุตตรงกับความเป็นจริง (กดปุ่มที่สาม)

มีอะไรเจ๋งๆ ที่เราเพิ่งทำไป?

ในกรณีนี้ โครงข่ายประสาทเทียมของเรา (หลังการฝึก) สามารถรับรู้อินพุตและพูดสิ่งที่จะนำไปสู่ผลลัพธ์ที่ต้องการ (เรายังคงต้องตั้งโปรแกรมสถานการณ์เฉพาะ):

นอกจากนี้ยังเป็นแบบจำลองที่ปรับขนาดได้ ของเล่น และเครื่องมือสำหรับการเรียนรู้ของเราร่วมกับคุณ เราสามารถเรียนรู้สิ่งใหม่ๆ เกี่ยวกับแมชชีนเลิร์นนิง โครงข่ายประสาทเทียม และปัญญาประดิษฐ์

ข้อควรระวังสำหรับผู้ใช้:

  • ไม่มีกลไกในการจัดเก็บน้ำหนักที่เรียนรู้ ดังนั้นโครงข่ายประสาทเทียมนี้จะลืมทุกสิ่งที่รู้ เมื่ออัปเดตหรือรันโค้ดใหม่ คุณต้องทำซ้ำอย่างน้อยหกครั้งเพื่อให้เครือข่ายสามารถฝึกได้อย่างเต็มที่ หากคุณคิดว่าบุคคลหรือเครื่องจะกดปุ่มแบบสุ่ม ... จะใช้เวลาสักครู่
  • เครือข่ายชีวภาพสำหรับการเรียนรู้สิ่งสำคัญมีอัตราการเรียนรู้ที่ 1 ดังนั้นจึงจำเป็นต้องมีการทำซ้ำที่ประสบความสำเร็จเพียงครั้งเดียวเท่านั้น
  • มีอัลกอริธึมการเรียนรู้ที่คล้ายกับเซลล์ประสาททางชีววิทยามาก แต่ก็มีชื่อที่ติดหู: กฎไวดรอฟ-ฮอฟฟ์, หรือ การฝึกวิดรอฟ-ฮอฟฟ์.
  • เกณฑ์ของเซลล์ประสาท (1 ในตัวอย่างของเรา) และผลกระทบที่มากเกินไป (ด้วยการทำซ้ำจำนวนมากผลลัพธ์จะมากกว่า 1) จะไม่ถูกนำมาพิจารณา แต่มีความสำคัญมากในธรรมชาติและมีความรับผิดชอบต่อกลุ่มการตอบสนองพฤติกรรมที่มีขนาดใหญ่และซับซ้อน . น้ำหนักติดลบก็เช่นกัน

หมายเหตุและบรรณานุกรมสำหรับการอ่านเพิ่มเติม

ฉันพยายามหลีกเลี่ยงคณิตศาสตร์และคำศัพท์ที่เข้มงวด แต่ในกรณีที่คุณสงสัย เราได้สร้าง perceptron ซึ่งถูกกำหนดให้เป็นอัลกอริธึมการเรียนรู้ภายใต้การดูแล (supervised learning) ของตัวแยกประเภทคู่ - ของหนัก

โครงสร้างทางชีววิทยาของสมองไม่ใช่เรื่องง่าย ส่วนหนึ่งเป็นเพราะความไม่ถูกต้อง ส่วนหนึ่งเป็นเพราะความซับซ้อน เริ่มต้นด้วย Neuroscience (Purves) และ Cognitive Neuroscience (Gazzaniga) ดีกว่า ฉันแก้ไขและดัดแปลงตัวอย่าง Rabbit จาก Gateway to Memory (Gluck) ซึ่งเป็นแนวทางที่ดีในโลกแห่งกราฟ

แหล่งข้อมูลที่ยอดเยี่ยมอีกอย่างหนึ่งอย่าง An Introduction to Neural Networks (Gurney) นั้นยอดเยี่ยมสำหรับทุกความต้องการด้าน AI ของคุณ

และตอนนี้ใน Python! ขอบคุณ Ilya Andshmidt ที่ให้เวอร์ชัน Python:

อินพุต = น้ำหนัก = ผลลัพธ์ที่ต้องการ = 1 learning_rate = 0.2 การทดลอง = 6 def ประเมิน_neural_network (input_array, weight_array): ผลลัพธ์ = 0 สำหรับฉันในช่วง (len (อินพุต_อาร์เรย์)): layer_value = input_array[i] * weight_array[i] ผลลัพธ์ += layer_value print("evaluate_neural_network: " + str(result)) print("weights: " + str(weights)) ส่งคืนผลลัพธ์ def ประเมิน_error(ต้องการ, จริง): ผิดพลาด = ต้องการ - พิมพ์จริง ("evaluate_error: " + str (ข้อผิดพลาด) ) ส่งคืนข้อผิดพลาด def เรียนรู้ (input_array, weight_array): print("learning...") สำหรับฉันอยู่ในช่วง (len (input_array)): ถ้า input_array[i] > 0: weight_array[i] += learning_rate def train (รุ่นทดลอง ): สำหรับฉันอยู่ในช่วง (ทดลอง): neural_net_result =ประเมิน_neural_network(อินพุต, ตุ้มน้ำหนัก) เรียนรู้ (อินพุต, ตุ้มน้ำหนัก) ฝึก (ทดลอง)
และตอนนี้ใน GO! มอบเครดิตให้กับ Kieran Maher สำหรับเวอร์ชันนี้

แพ็กเกจนำเข้าหลัก ("fmt" "คณิตศาสตร์") func main() ( fmt.Println ("การสร้างอินพุตและน้ำหนัก ... ") อินพุต:= float64(0.00, 0.00, 1.00, 0.00) น้ำหนัก:= float64(0.00, 0.00, 0.00, 0.00) ต้องการ:= 1.00 learningRate:= 0.20 trials:= 6 trains(trials, inputs, weights, ages, learningRate) ) func train(ทดลอง int, อินพุต float64, weights float64, float64 ที่ต้องการ, learningRate float64) ( สำหรับ i:= 1;i< trials; i++ { weights = learn(inputs, weights, learningRate) output:= evaluate(inputs, weights) errorResult:= evaluateError(desired, output) fmt.Print("Output: ") fmt.Print(math.Round(output*100) / 100) fmt.Print("\nError: ") fmt.Print(math.Round(errorResult*100) / 100) fmt.Print("\n\n") } } func learn(inputVector float64, weightVector float64, learningRate float64) float64 { for index, inputValue:= range inputVector { if inputValue >0.00 ( weightVector = weightVector + learningRate ) ) คืนค่า weightVector ) func ประเมิน (inputVector float64, weightVector float64) float64 ( ผลลัพธ์:= 0.00 สำหรับดัชนี inputValue:= ช่วง inputVector ( layerValue:= inputValue * weightVector ผลลัพธ์ = ผลลัพธ์ + layerValue ) ส่งคืนผลลัพธ์ ) func ประเมินข้อผิดพลาด (float64 ที่ต้องการ, float64 จริง) float64 (ส่งคืนที่ต้องการ - จริง)

คุณสามารถช่วยเหลือและโอนเงินบางส่วนเพื่อการพัฒนาเว็บไซต์

 

ครั้งนี้ฉันตัดสินใจเรียนโครงข่ายประสาทเทียม ฉันสามารถใช้ทักษะพื้นฐานในเรื่องนี้ได้ในช่วงฤดูร้อนและฤดูใบไม้ร่วงปี 2015 ด้วยทักษะพื้นฐาน ฉันหมายความว่าฉันสามารถสร้างโครงข่ายประสาทเทียมแบบง่ายๆ ด้วยตัวเองตั้งแต่เริ่มต้น คุณสามารถหาตัวอย่างได้ในที่เก็บ GitHub ของฉัน ในบทความนี้ ฉันจะให้คำชี้แจงและแบ่งปันแหล่งข้อมูลที่คุณอาจพบว่ามีประโยชน์สำหรับการศึกษาของคุณ

ขั้นตอนที่ 1: เซลล์ประสาทและการขยายพันธุ์ฟีดฟอร์เวิร์ด

แล้ว "โครงข่ายประสาทเทียม" คืออะไร? ให้รอกับสิ่งนี้และจัดการกับเซลล์ประสาทหนึ่งตัวก่อน

เซลล์ประสาทเป็นเหมือนฟังก์ชัน: ยอมรับหลายอินพุตและส่งกลับค่าหนึ่ง

วงกลมด้านล่างแสดงถึงเซลล์ประสาทเทียม ได้รับ 5 และส่งกลับ 1 อินพุตเป็นผลรวมของสามไซแนปส์ที่เชื่อมต่อกับเซลล์ประสาท (ลูกศรสามตัวทางด้านซ้าย)

ที่ด้านซ้ายของภาพ เราเห็นค่าอินพุต 2 ค่า (สีเขียว) และค่าออฟเซ็ต (เน้นด้วยสีน้ำตาล)

ข้อมูลที่ป้อนอาจเป็นตัวเลขแทนคุณสมบัติสองอย่าง ตัวอย่างเช่น เมื่อสร้างตัวกรองสแปม อาจหมายถึงมีมากกว่าหนึ่งคำที่เขียนด้วยตัวพิมพ์ใหญ่และมีคำว่า "ไวอากร้า"

ค่าอินพุตจะถูกคูณด้วยสิ่งที่เรียกว่า "น้ำหนัก", 7 และ 3 (เน้นด้วยสีน้ำเงิน)

ตอนนี้เราเพิ่มค่าผลลัพธ์ด้วยออฟเซ็ตและรับตัวเลขในกรณีของเรา 5 (เน้นด้วยสีแดง) นี่คือข้อมูลเข้าของเซลล์ประสาทเทียมของเรา

จากนั้นเซลล์ประสาทจะทำการคำนวณและสร้างค่าเอาต์พุต เราได้ 1 เพราะ ค่าที่ปัดเศษของ sigmoid ที่จุด 5 คือ 1 (เพิ่มเติมเกี่ยวกับฟังก์ชันนี้ในภายหลัง)

หากนี่เป็นตัวกรองสแปม ข้อเท็จจริงที่ว่าผลลัพธ์คือ 1 หมายความว่าข้อความนั้นถูกทำเครื่องหมายว่าเป็นสแปมโดยเซลล์ประสาท

ภาพประกอบโครงข่ายประสาทเทียมจากวิกิพีเดีย

หากคุณรวมเซลล์ประสาทเหล่านี้เข้าด้วยกัน คุณจะได้โครงข่ายประสาทที่ขยายไปข้างหน้า - กระบวนการนี้เริ่มจากอินพุตไปยังเอาต์พุต ผ่านเซลล์ประสาทที่เชื่อมต่อด้วยไซแนปส์ ดังในภาพด้านซ้าย

ขั้นตอนที่ 2. ซิกมอยด์

หลังจากที่คุณได้ดูบทช่วยสอนของ Welch Labs แล้ว คุณควรตรวจสอบสัปดาห์ที่สี่ของหลักสูตรการเรียนรู้ของเครื่อง Coursera บนโครงข่ายประสาทเทียมเพื่อช่วยให้คุณเข้าใจวิธีการทำงาน หลักสูตรนี้เน้นไปที่คณิตศาสตร์และอิงจาก Octave ในขณะที่ฉันชอบ Python ด้วยเหตุนี้ ฉันจึงข้ามแบบฝึกหัดและได้รับความรู้ที่จำเป็นทั้งหมดจากวิดีโอ

Sigmoid จับคู่ค่าของคุณ (บนแกนนอน) กับกลุ่มตั้งแต่ 0 ถึง 1

สิ่งสำคัญอันดับแรกสำหรับฉันคือการศึกษา sigmoid ตามที่คิดในหลาย ๆ ด้านของโครงข่ายประสาท ฉันรู้บางอย่างเกี่ยวกับเธอตั้งแต่สัปดาห์ที่สามของหลักสูตรข้างต้น ดังนั้นฉันจึงตรวจสอบวิดีโอจากที่นั่น

แต่วิดีโอเพียงอย่างเดียวจะไม่พาคุณไปไกล เพื่อความเข้าใจอย่างถ่องแท้ ฉันจึงตัดสินใจเขียนโค้ดด้วยตนเอง ดังนั้นฉันจึงเริ่มเขียนการใช้งานอัลกอริธึมการถดถอยโลจิสติก (ซึ่งใช้ sigmoid)

ใช้เวลาทั้งวันและผลลัพธ์ไม่น่าพอใจ แต่มันไม่สำคัญหรอก เพราะฉันรู้แล้วว่าทุกอย่างทำงานอย่างไร รหัสสามารถมองเห็นได้

คุณไม่จำเป็นต้องทำเองเพราะมันต้องการความรู้พิเศษ - สิ่งสำคัญคือคุณต้องเข้าใจว่าซิกมอยด์ทำงานอย่างไร

ขั้นตอนที่ 3 กลับวิธีการขยายพันธุ์

การทำความเข้าใจว่าโครงข่ายประสาทเทียมทำงานอย่างไรจากอินพุตไปยังเอาต์พุตนั้นไม่ใช่เรื่องยาก เป็นการยากที่จะเข้าใจว่าโครงข่ายประสาทเทียมได้รับการฝึกอบรมในชุดข้อมูลอย่างไร หลักการที่ผมใช้เรียกว่า backpropagation

กล่าวโดยย่อ: คุณประเมินว่าเครือข่ายผิดเพียงใดและเปลี่ยนน้ำหนักของค่าอินพุต (ตัวเลขสีน้ำเงินในภาพแรก)

กระบวนการนี้สิ้นสุดลงเมื่อเราเริ่มต้นที่ส่วนท้ายของเครือข่าย (ดูว่าการเดาของเครือข่ายเบี่ยงเบนไปจากความจริงมากแค่ไหน) และย้อนกลับโดยเปลี่ยนน้ำหนักไปพร้อมกัน จนกว่าเราจะไปถึงอินพุต ในการคำนวณทั้งหมดนี้ด้วยตนเอง จำเป็นต้องมีความรู้เกี่ยวกับการวิเคราะห์ทางคณิตศาสตร์ Khan Academy มีหลักสูตรแคลคูลัสที่ดี แต่ฉันเรียนที่มหาวิทยาลัย คุณไม่สามารถรบกวนและใช้ไลบรารีที่จะคำนวณ matan ทั้งหมดให้คุณ

สกรีนช็อตจากคำแนะนำของ Matt Mazur สู่การขยายพันธุ์ด้านหลัง

แหล่งข้อมูลสามแหล่งที่ช่วยให้ฉันเข้าใจวิธีนี้:

ในกระบวนการอ่านสองบทความแรก คุณต้องเขียนโค้ดด้วยตัวเองอย่างแน่นอน ซึ่งจะช่วยคุณได้มากขึ้น และโดยทั่วไปแล้ว โครงข่ายประสาทเทียมจะไม่สามารถเข้าใจได้อย่างเหมาะสมหากละเลยการปฏิบัติ บทความที่สามก็ดีมากเช่นกัน แต่เป็นสารานุกรมมากกว่าเนื่องจากเป็นขนาดของหนังสือทั้งเล่ม ประกอบด้วยคำอธิบายโดยละเอียดเกี่ยวกับหลักการสำคัญทั้งหมดเกี่ยวกับวิธีการทำงานของโครงข่ายประสาทเทียม บทความเหล่านี้จะช่วยให้คุณเรียนรู้แนวคิดต่างๆ เช่น ฟังก์ชันต้นทุนและการไล่ระดับสี

ขั้นตอนที่ 4 สร้างโครงข่ายประสาทเทียมของคุณเอง

เมื่ออ่านบทความและบทช่วยสอนต่างๆ ไม่ทางใดก็ทางหนึ่ง คุณจะเขียนโครงข่ายประสาทเทียมขนาดเล็ก ฉันแนะนำให้ทำอย่างนั้นเพราะเป็นวิธีการสอนที่มีประสิทธิภาพมาก

บทความที่เป็นประโยชน์อื่น ๆ