สวัสดีและยินดีต้อนรับสู่การสอน Python นี้
เอาล่ะเรามีความตื่นเต้นอย่างมากต่อหน้าเรา
เรากำลังจะเริ่มต้นด้วยการสร้างสถาปัตยกรรมของโครงข่ายประสาทเทียมนั่นคือเราจะสร้างโครงข่ายประสาทเทียมที่จะเป็นหัวใจของ
AI ของเราและจะคืนค่าการกระทำให้เล่นเมื่ออายุ 90
ลองทำสิ่งนี้กัน
ดังนั้นเนื่องจากเราต้องการให้เครือข่ายประสาทของเรามีเป้าหมายเราจะทำให้มันเป็นคลาส
และนั่นเป็นเพราะสะดวกกว่ามาก
คุณรู้ว่าคลาสเป็นแบบอย่างของสิ่งที่เราต้องการสร้าง
เราต้องการสร้างเครือข่ายประสาทและเราต้องทำคำแนะนำบางอย่างซึ่งจะถูกบรรจุไว้ในชั้นเรียน
และในคลาสนี้เราจะทำสองฟังก์ชัน
ก่อนอื่นฟังก์ชัน init ซึ่งเป็นฟังก์ชันที่เกิดขึ้นตลอดเวลาเมื่อทำการเรียน
และโดยทั่วไปแล้วจะกำหนดตัวแปรของวัตถุของคุณนั่นคือเครือข่ายประสาท
คุณรู้ว่าตัวแปรที่แนบมากับวัตถุเมื่อเทียบกับตัวแปรทั่วโลก
และนี่คือฟังก์ชั่นนี้ที่จะกำหนดสถาปัตยกรรมของเครือข่ายใหม่ที่คุณรู้จักกำหนดเลเยอร์อินพุตซึ่งจะประกอบไปด้วยเซลล์ประสาทอินพุทห้าอัน
จากนั้นเราจะกำหนดเลเยอร์ที่ซ่อนอยู่
บางทีคุณอาจเริ่มต้นด้วยเลเยอร์ที่ซ่อนอยู่หนึ่งชั้นจากนั้นคุณจะสามารถลองสถาปัตยกรรมอื่น ๆ ของโครงข่ายประสาท
และแน่นอนว่าเราจะจบลงด้วยเลเยอร์เอาต์พุตที่จะมีการกระทำที่เป็นไปได้ที่เราสามารถเล่นได้ในแต่ละครั้ง
นั่นคือสิ่งที่เราจะทำในฟังก์ชั่นนี้
จากนั้นเราจะสร้างฟังก์ชั่นอื่นที่อยู่ภายในคลาสซึ่งจะเป็นฟังก์ชันไปข้างหน้าและนั่นจะเป็นฟังก์ชั่นที่จะกระตุ้นเซลล์ประสาทในเครือข่ายประสาท
คุณรู้ว่าสิ่งนี้จะเปิดใช้งานสัญญาณและดังนั้นเราจะใช้ฟังก์ชั่นการเปิดใช้งานแก้ไขเพราะแน่นอนว่าเรากำลังเผชิญกับปัญหาที่ไม่เชิงเส้นอย่างหมดจดและฟังก์ชั่นการแก้ไขนี้แบ่งเส้นตรง
แต่ส่วนใหญ่เราจะทำฟังก์ชั่นฟอร์ดเพื่อคืนค่า q ซึ่งเป็นผลลัพธ์ของเครือข่าย
แต่เรามีค่าหนึ่งคีย์สำหรับแต่ละการกระทำ
และหลังจากนั้นเราจะกลับมาดำเนินการขั้นสุดท้ายโดยรับค่าคีย์สูงสุดหรือใช้วิธีการอ่อนนุ่ม
เราจะเห็นว่าหลังจากนั้น
ดังนั้นในบทช่วยสอนนี้เราจะเริ่มต้นด้วยการใช้งานฟังก์ชั่น init
จากนั้นบทต่อไปจะนำฟังก์ชั่นไปข้างหน้า
ลองทำสิ่งนี้กัน
ก่อนอื่นเราต้องแนะนำคลาสของเรา
ดังนั้นเราเริ่มจากคลาสและให้ชื่อแก่คลาสของเราซึ่งเป็นที่ที่เราเรียกมันว่าเครือข่าย
และในคลาสเครือข่ายนี้ฉันจะใช้เทคนิคการเขียนโปรแกรมวัตถุซึ่งเรียกว่าการสืบทอดและนั่นก็เพื่อสืบทอดจากเครื่องมือทั้งหมดของคลาสแม่
ดังนั้นคลาสเครือข่ายของเราที่เรากำลังจะทำคือการทดสอบย่อยของคลาสที่ใหญ่กว่า
และโมดูลนั้น
นั่นเป็นเพียงการสืบทอดจากเครื่องมือทั้งหมดของคลาสโมดูลนี้ซึ่งแน่นอนว่าเครื่องมือในการติดตั้งเครือข่ายประสาทเทียม
นั่นเป็นกลลวงที่ทรงพลังและวิวัฒนาการในการเขียนโปรแกรมเชิงวัตถุ
และตอนนี้เรากำลังสืบทอดจากคลาสพาเรนต์โมดูลนี้
เอาล่ะตอนนี้เราก็พร้อมแล้วที่จะเข้าเรียน
ดังนั้นฉันจึงกด Enter สองครั้งจริง ๆ เพราะเราจะสร้างสองฟังก์ชันและเราเริ่มต้นด้วยฟังก์ชันสุดท้าย
ดังนั้นฟังก์ชั่นเริ่มต้นเราต้องตั้งชื่อแบบนี้ด้วยสองในหลักสูตรนี้ในนั้น
และอีกครั้งเพื่อเน้นย้ำว่าเป็นเพียงไวยากรณ์ของ Python ที่เป็นเพียงวิธีที่เราต้องทำ
จากนั้นเราต้องใส่อาร์กิวเมนต์
เรามีข้อโต้แย้งสามข้อ
ข้อแรกคือข้อโต้แย้งที่เป็นข้อบังคับของตนเอง
ไม่มีความลึกลับเกี่ยวกับมันที่อ้างถึงวัตถุที่จะสร้างขึ้นจากคลาสนี้
คุณรู้ว่าเรากำลังเรียนนี้
มันเหมือนกับคำสั่งบางแบบของโครงข่ายประสาทนี้ที่เราต้องการสร้าง
จากนั้นเมื่อชั้นเรียนพร้อมแล้วเราสามารถสร้างเครือข่ายได้มากเท่าที่เราต้องการ
และแต่ละเครือข่ายใหม่เหล่านี้จะเป็นวัตถุของคลาสนี้และเนื่องจากเราจะใช้วัตถุเพื่อวัตถุประสงค์อื่นที่เราต้องการ
แต่สิ่งที่เป็นตัวแปรของวัตถุและ Spudis เราใช้ตัวเองที่นี่เพื่อระบุว่าเรา หมายถึงวัตถุ
ดังนั้นเมื่อใดก็ตามที่ฉันต้องการใช้จากวัตถุของฉันฉันจะใช้ตัวเองก่อนตัวแปรเพื่อระบุว่านี่เป็นตัวแปรของวัตถุ
เอาล่ะนั่นคืออาร์กิวเมนต์แรกจากนั้นเรามีข้อโต้แย้งอีกสองข้อซึ่งแน่นอนว่าเป็นจำนวนของเซลล์ประสาทอินพุตและจำนวนเซลล์ประสาทขาออก
จำนวนเซลล์ประสาทรับเข้าที่เราจะเรียกมันว่าขนาดอินพุตและนั่นคือห้าเพราะเวกเตอร์อินพุตของเรามีสัญญาณห้ามิติถึงสามมิติบวกกับการวางแนว
ค่าห้าค่านี้เพียงพอที่จะอธิบายสถานะของสภาพแวดล้อม
เราอาจคิดถึงค่าที่น้อยลงหรือมากกว่าค่า แต่นั่นคือสิ่งที่ฉันพยายามและมันก็สมเหตุสมผลจริง ๆ
เพราะเราต้องการสัญญาณหนึ่งสัญญาณจากสัญญาณซ้ายหนึ่งต่อหน้าเราและอีกสัญญาณหนึ่งอยู่ทางขวา
คุณรู้ว่าเมื่อเรากำลังขับรถเราจะได้สัญญาณ 360
ที่คุณรู้เหมือนสัญญาณที่อยู่ด้านบนของรถ Google ที่เราสามารถขับรถด้วยตนเองโดยใช้เซ็นเซอร์สามตัวจากนั้นเรามีการปฐมนิเทศและการวางแนวนี้กับคุณ
ทราบว่าคุณกำลังพยายามไปให้ถึงเป้าหมาย
แล้วเราก็มีเซลล์ประสาทเอาท์พุทของเครือข่ายของเราที่สอดคล้องกับการกระทำและเรามีสามการกระทำที่เป็นไปได้ที่จะไปทางตรงหรือไปทางขวา
ดังนั้นฉันจะเรียกมันและการกระทำและจะมีสามในนั้น
เอาล่ะ
จนถึงตอนนี้เราแค่ต้องตั้งชื่อให้กับอินพุตและจากนั้นเราจะใช้วอลเล่ย์บอลเหล่านี้เพื่อทำเงื่อนไขภายในเครือข่ายประสาท
เอาล่ะแล้วคุณก็เริ่มด้วยการใช้เคล็ดลับคบเพลิงอีกครั้งเคล็ดลับนี้เป็นฟังก์ชั่นที่ยอดเยี่ยมซึ่งเป็นฟังก์ชั่นที่สืบทอดมาจากโมดูล
นั่นคือสาเหตุที่เราต้องใช้การสืบทอดเพื่อสืบทอดโมดูลด้วย
นี่คือการใช้ครั้งแรก
ดังนั้นโดยพื้นฐานแล้วเราแค่ใช้ superfunction super เคล็ดลับนี้เพื่อให้สามารถใช้เครื่องมือของโมดูลที่มีประสิทธิภาพมากขึ้น
และภายใน superfunction ฉันแค่ต้องระบุเครือข่ายก่อน
นั่นคือคลาส chul เครือข่ายของเราที่คุณรู้เพราะนี่คือการสืบทอดจากคลาสพาเรนต์โมดูลและจากนั้นวัตถุของเรา
แล้วฉันก็แค่เพิ่มเข้าไปและอยู่ในฟังก์ชันแบบนี้อย่างที่เราตั้งชื่อมัน
เอาล่ะนั่นเป็นเพียงกลลวงที่จะใช้เครื่องมือทั้งหมดที่ฉันมี
และในโมดูลนั้นเราสามารถไปยังขั้นตอนถัดไปซึ่งก็คือการระบุเลเยอร์อินพุต
ดังนั้นสิ่งที่ฉันต้องทำคือแนะนำตัวแปรใหม่ที่จะแนบกับวัตถุและตัวแปรนี้จะมีจำนวนของเซลล์ประสาทอินพุต
ดังนั้นเพื่อไม่ให้สับสนกับขนาดอินพุตขนาดอินพุตเป็นอาร์กิวเมนต์ของฟังก์ชั่นสิ้นสุด
แต่นั่นไม่ใช่ตัวแปรที่แนบมากับวัตถุ แต่เป็นตัวแปรที่แนบกับวัตถุ
อย่างที่ฉันเพิ่งพูดไปเราจำเป็นต้องระบุว่ามันติดอยู่กับวัตถุแทนดังนั้นเราจึงใช้การสอนด้วยตนเองและตอนนี้เราตั้งชื่อตัวแปรแรกนี้ที่แนบกับวัตถุ
และเพื่อให้เราสามารถให้ชื่อเดียวกับอินพุต
เราสามารถเรียกมันว่าขนาดอินพุตและเราจะบอกว่ามันเท่ากับอาร์กิวเมนต์ที่ฟังก์ชั่นนั่นคือขนาดอินพุต
เอาล่ะ
ทุกครั้งที่ฉันสร้างวัตถุจากคลาสเครือข่ายและฉันระบุขนาดอินพุตเช่นเช่นฉันใส่ 5
จะมี 5 ของที่นี่และดังนั้นขนาดตัวแปรอินพุตของวัตถุของเราจะมีค่า
5 เพราะขนาดอินพุตนี้จะเป็น 5 และดังนั้นเครือข่ายใหม่ของเราจะมี 5 เซลล์ประสาทในอินพุตเลเยอร์
เอาล่ะ
และนั่นก็เป็นสิ่งเดียวกันสำหรับตัวแปรอื่น ๆ ที่เราต้องการแนบกับวัตถุ
และอย่างที่คุณอาจเดาได้ว่านี่จะเป็นตัวแปรสำหรับจำนวนเซลล์ประสาทขาออก
และเพื่อบอกว่าเรารับวัตถุของเราเองแล้วเราให้ชื่อตัวแปรที่สองของวัตถุที่เราจะเรียกมันและการกระทำ
และนี่จะเท่ากับอาร์กิวเมนต์นี้ตรงนี้เนื่องจากจำนวนการกระทำที่เป็นจำนวนเซลล์ประสาทขาออก
ดังนั้นเราจึงกำหนดให้เท่ากับการกระทำจริงและการกระทำจะเท่ากับสาม
ดังนั้นตัวแปรและการกระทำที่แนบกับวัตถุของเราไปยังเครือข่ายจะได้รับค่าสาม
ที่จริงเราเห็นคำเตือนที่นี่มันบอกชื่อไม่ได้กำหนด
และนั่นก็เป็นเพราะที่นี่เราใช้
แล้วทางลัด
และเราต้องใช้ทางลัดที่นี่
และสำหรับ torche ของเราเริ่มต้นและใน Mudgal แล้วมันจะหายไป
ไปเลย.
สมบูรณ์
ตอนนี้เรามีคำเตือนใหม่คำเตือนทั้งหมดที่นี่เพียงเพื่อระบุว่าสิ่งที่เรานำเข้ายังไม่ได้ใช้
ไม่เป็นไรเราจะใช้มันหลังจากนั้น
เอาล่ะเรามีตัวแปรอีกสองตัวที่เราต้องการนิยามสำหรับวัตถุ
และนี่จะเป็นการเชื่อมต่อแบบเต็มการเชื่อมต่อแบบเต็มรูปแบบระหว่างเลเยอร์ต่างๆของเครือข่ายประสาทของเรา
ดังนั้นตั้งแต่ตอนนี้เราต้องการสร้างโครงข่ายประสาทที่ประกอบด้วยหัวเพียงหนึ่งเดียวในโลกของพวกเขาจึงจะมีการเชื่อมต่อเต็มรูปแบบ
จะมีการเชื่อมต่อเต็มรูปแบบครั้งแรกระหว่างเลเยอร์อินพุตและเลเยอร์ที่ซ่อนอยู่
และหนึ่งการเชื่อมต่อเต็มรูปแบบหนึ่งวินาทีระหว่างเนินเขาที่นั่นและชั้นเอาท์พุท
ดังนั้นเรามาเริ่มต้นด้วยการเชื่อมต่อเต็มรูปแบบแรก
เราจะเรียกมันว่า SE1 และอีกครั้งฉันใช้ตัวเองที่นี่เพื่อระบุว่า FC one เป็นตัวแปรของวัตถุของฉันเพื่อแก้ปัญหานั้น
เอฟซีหนึ่งซึ่งจะเท่ากับ
และตอนนี้เราใช้ N ในโมดูลและเราจะใช้ฟังก์ชั่นที่เรียกว่า linear
R และนั่นคือสิ่งที่ทำให้การเชื่อมต่อเต็มรูปแบบระหว่างเซลล์ประสาทและชั้นข้อมูลเข้ากับเซลล์ประสาทที่ซ่อนอยู่
และฉันหมายความว่าอย่างไรโดยการเชื่อมต่อแบบเต็ม
นั่นหมายความว่าเซลล์ประสาททั้งหมดของชั้นข้อมูลเข้าทั้งหมดจะเชื่อมต่อกับเซลล์ประสาททั้งหมดของที่นี่ในนั้น
เพื่อให้การเชื่อมต่อนี้เราใช้ฟังก์ชันเชิงเส้นนี้ซึ่งเราต้องใส่อาร์กิวเมนต์
และอย่างที่คุณเห็นอาร์กิวเมนต์เหล่านี้อยู่ในฟีเจอร์
นั่นคือจำนวนเซลล์ประสาทของกฎข้อแรกที่คุณต้องการเชื่อมต่อกับคุณสมบัติที่เป็นจำนวนเซลล์ประสาทของชั้นที่สองที่คุณต้องการเชื่อมต่อนั่นคือชั้นทางด้านขวาที่เป็นชั้นที่ถูกซ่อนและจักรยานที่แท้จริง
ดังนั้นความจริงของจักรยานเราจะเก็บค่าเริ่มต้นนั่นคือเพื่อให้มีอคติและไม่เพียง แต่น้ำหนักบางอย่างที่ติดอยู่กับการวิ่งเราจะต้องรอและมีอคติหนึ่งสำหรับแต่ละชั้น
ลองดูสิ่งที่เราต้องป้อน
ดังนั้นอาร์กิวเมนต์แรกในคุณสมบัติคือจำนวนของเซลล์ประสาทรับเข้าในชั้นข้อมูลเข้า
และมันอยู่ที่ไหน
ที่จริงแล้วไม่แน่ชัด
นั่นคืออาร์กิวเมนต์ของฟังก์ชั่น init ของเราซึ่งต่อมาเราจะสามารถต่อสู้กับการวางแนวสัญญาณทั้งสามและการวางแนว Mannus
ดังนั้นเราไปกันเลย
เมื่ออาร์กิวเมนต์แรกและใส่ขนาดแล้วอาร์กิวเมนต์ที่สองคือคุณสมบัติที่เป็นจำนวนเซลล์ประสาทที่เราต้องการในชั้นที่สอง
เลเยอร์ที่สองที่จะเชื่อมต่อเต็มที่กับเลเยอร์แรก
และตอนนี้คำถามก็คือเราต้องการเซลล์ประสาทจำนวนเท่าใดในเลเยอร์ที่ซ่อนอยู่นี้
ฉันทำการฝึกอบรมพารามิเตอร์หลายอย่าง
ฉันทำการทดลองมากมาย
นั่นคือสิ่งที่เราทำหรือนั่นคือสิ่งที่เราทำในเชิงลึก
โดยทั่วไปเราทำการทดลองมากมายเพื่อดูว่าเครือข่ายประสาทที่ดีที่สุดสำหรับปัญหาเฉพาะของเรา
ดังนั้นฉันจึงลองหลายค่าและลงเอยด้วยการเลือก 30 30 run
ในเลเยอร์ที่ซ่อนอยู่และคุณจะเห็นว่าด้วยหมายเลขนี้เราจะได้ผลลัพธ์ที่ดีพอสมควร แต่จากนั้นคุณสามารถเปลี่ยนสถาปัตยกรรมของโครงข่ายประสาทเทียมได้
รู้สึกอิสระที่จะเล่นกับมัน
คุณไม่เพียง แต่สามารถเปลี่ยนจำนวนของเซลล์ประสาทในที่นี่และที่นั่น แต่คุณยังสามารถเพิ่มเลเยอร์เพิ่มเติมเพื่อให้คุณได้รับรถยนต์ที่ดียิ่งขึ้น
แต่เซลล์ hinna 30 เซลล์จะทำให้เรามีโครงข่ายประสาทที่ดีและเป็นสาเหตุที่ดี
นั่นคือสิ่งที่เราไป
และเราไปกันแล้ว
เรามีการเชื่อมต่อเต็มรูปแบบครั้งแรกกับฟังก์ชั่นเชิงเส้นนี้
เราทำการเชื่อมต่อระหว่างเลเยอร์อินพุตและขาที่ซ่อนอยู่
และถึงเวลาที่จะทำการเชื่อมต่อเต็มรูปแบบที่สองนั่นคือการเชื่อมต่อเต็มรูปแบบระหว่างเลเยอร์ที่ซ่อนอยู่และเลเยอร์เอาท์พุท
ดังนั้นเราไปกันเลย
เราจะเรียกการเชื่อมต่อเต็มรูปแบบที่สองนี้ที่ C2
เราจะไปที่นั่น.
และยังคงมีให้สำหรับวัตถุอื่น ๆ ที่ใช้ Saphir
แล้วเราก็ใช้อีกครั้ง
ทีนี้เราสามารถคัดลอกนี่ได้เพราะเราจะใช้ N ในโมดูลแล้วฟังก์ชันเชิงเส้น
แต่เราต้องเปลี่ยนข้อโต้แย้งของหลักสูตรก่อน
นั่นเป็นครั้งแรกที่เหมือนกันคือจำนวนของเซลล์ประสาทที่เราจะมีในชั้นแรกของการเชื่อมต่อ
นั่นคือสิ่งที่ซ่อนอยู่ที่นั่น
ดังนั้นนั่นคือ 30
และจากนั้นอาร์กิวเมนต์ที่สองคือจำนวนของเซลล์ประสาทในชั้นที่สองของการเชื่อมต่อและที่สอดคล้องกับชั้นเอาท์พุทและเอาท์พุทที่มี
และเซลล์ประสาทที่เกิดขึ้นจริงซึ่งต่อมาจะเป็นสามเพราะเรามีสามการกระทำที่เป็นไปได้
นั่นคือชื่อของอาร์กิวเมนต์ของฟังก์ชั่น init และดังนั้นเราจึงใส่ที่นี่และการกระทำและที่เราไป
ครั้งแรกของการเชื่อมต่อ tuple ทั้งหมดของเราอีกครั้ง
และประการที่สองคือฟังก์ชั่นใด ๆ ของอิสราเอล
นั่นคือสิ่งที่เราจะเริ่มต้นวัตถุของเราเมื่อใดก็ตามที่เราสร้างวัตถุจากคลาสเครือข่าย
ดังนั้นทันทีที่เราสร้างออบเจ็กต์ตัวแปรทั้งหมดเหล่านี้สำหรับตัวแปรที่นี่ขนาดและปฏิกิริยา
คุณและสองจะถูกกำหนด
และนั่นคือวิธีที่เราจะได้รับสถาปัตยกรรมของเครือข่ายสัตว์ของเราสำหรับแต่ละวัตถุที่เราสร้าง
แต่ละวัตถุจะสอดคล้องกับเครือข่ายประสาทของเซลล์ประสาทอินพุตห้าเซลล์ประสาทที่ซ่อนอยู่ 30 เซลล์และเซลล์ประสาทเอาท์พุทสามเซลล์
ดังนั้นเราไปกันเลย
เราทำกับฟังก์ชันแรกนี้และตอนนี้เราสามารถย้ายไปยังฟังก์ชันที่สองซึ่งเป็นฟังก์ชันไปข้างหน้าและที่จะใช้เพื่อเปิดใช้งานเซลล์ประสาทในเครือข่ายประสาทโดยใช้ฟังก์ชันเปิดใช้งานวงจรเรียงกระแส ผลลัพธ์ของเครือข่ายเดียวเท่านั้น
ดังนั้นฉันไม่สามารถรอที่จะทำเช่นนี้ในการกวดวิชาต่อไปและจนกว่าฉันจะ