จะจำแนกข้อมูลที่เป็นรูปเกลียวได้อย่างไร?


9

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


คำตอบ:


11

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

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

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

ป้อนคำอธิบายรูปภาพที่นี่


พิกัดทรงกลม! เตือนฉันถึงแคลคูลัสระดับปริญญาตรี
Souradeep Nanda

4
@SouradeepNanda คุณจะพบสิ่งคณิตศาสตร์มากมายที่ผู้คนพบว่าไร้ประโยชน์ในโรงเรียนสำคัญอย่างยิ่งใน ML
Salvador Dali

สำหรับผู้ที่อยากรู้อยากเห็นเช่นฉันฉันพยายามที่จะทำซ้ำผลลัพธ์แต่สิ่งต่าง ๆ ไม่ได้ราบรื่น
codevision

4

เครือข่ายโครงข่ายประสาทควรจะสามารถหาฟังก์ชั่นของมันเองโดยที่เราไม่ได้ให้คุณสมบัติทรงกลม หลังจากการทดลองบางอย่างที่ฉันก็สามารถไปถึงการกำหนดค่าที่เราไม่ต้องการอะไรยกเว้นและX_2ตาข่ายนี้มาบรรจบกันหลังจากนั้นประมาณ 1,500 ครั้งซึ่งค่อนข้างยาว ดังนั้นวิธีที่ดีที่สุดอาจจะยังคงเพิ่มคุณสมบัติเพิ่มเติม แต่ฉันแค่พยายามบอกว่ามันยังคงเป็นไปได้ที่จะมาบรรจบกันโดยไม่มีพวกเขาX1X2

โซลูชันที่ไม่มีคุณสมบัติเพิ่มเติม


3

โดยการโกง ... thetaเป็น ,คือ2)}arctan(y,x)r(x2+y2)

ในทางทฤษฎีแล้วและควรใช้งานได้ แต่ในทางปฏิบัติพวกเขาก็ล้มเหลวในบางครั้งแม้ว่ามันจะทำงานได้ก็ตามx2y2

ป้อนคำอธิบายรูปภาพที่นี่


คุณสามารถอธิบายอย่างละเอียดว่าคุณ“ โกง” ได้อย่างไร? คุณเพิ่มคุณสมบัติเหล่านี้ได้อย่างไร คุณดาวน์โหลดสนามเด็กเล่นจาก GitHub และแก้ไขหรือไม่ หรือมีวิธีโดยตรงมากกว่านี้?
Jim

ฉันสงสัยว่าจะใช้แฮ็คนี้ด้วยเช่นกัน พยายามทำในเบราว์เซอร์ แต่ก็ไม่มีโชค ฉันตัดสินใจแยกซอร์สโค้ดและเพิ่มฟีเจอร์อินพุตใหม่ คุณสามารถดูได้ที่นี่
Cankut

0

วิธีการแก้ปัญหาเกลียวสนามเด็กเล่นวานิลลา

นี่คือตัวอย่างของสนามเด็กเล่น Vanilla Tensorflow ที่ไม่มีฟีเจอร์ที่เพิ่มเข้ามาและไม่มีการดัดแปลงใด ๆ การวิ่งของ Spiral อยู่ระหว่าง 187 ถึง ~ 300 Epoch ขึ้นอยู่กับ ฉันใช้ Lasso Regularization L1 ดังนั้นฉันจึงสามารถกำจัดค่าสัมประสิทธิ์ ฉันลดขนาดแบตช์ลง 1 เพื่อไม่ให้เอาท์พุตเกินพอดี ในตัวอย่างที่สองของฉันฉันเพิ่มสัญญาณรบกวนลงในชุดข้อมูลจากนั้นกด L1 เพื่อชดเชย

ป้อนคำอธิบายรูปภาพที่นี่


0

วิธีการแก้ปัญหาที่ฉันไปถึงหลังจากหนึ่งชั่วโมงของการทดลองมักจะมาบรรจบกันในเวลาเพียง 100ครั้ง

ใช่ฉันรู้ว่ามันไม่ได้มีขอบเขตการตัดสินใจที่ราบรื่นที่สุด แต่มันมาบรรจบกันอย่างรวดเร็ว

! [ข้อผิดพลาดการทดสอบ 0.6%

ฉันได้เรียนรู้เล็ก ๆ น้อย ๆ จากการทดลองหมุนวนนี้: -

  • ชั้นเอาท์พุทควรจะมากกว่าหรือเท่ากับชั้นการป้อนข้อมูล อย่างน้อยนั่นคือสิ่งที่ฉันสังเกตเห็นในกรณีของปัญหาเกลียวนี้
  • ให้อัตราการเรียนรู้เริ่มต้นสูงเช่น 0.1 ในกรณีนี้เมื่อคุณเข้าใกล้ข้อผิดพลาดในการทดสอบต่ำเช่น 3-5% หรือน้อยกว่าลดอัตราการเรียนรู้ด้วยรอย (0.03) หรือสอง สิ่งนี้จะช่วยให้การบรรจบกันเร็วขึ้นและหลีกเลี่ยงการกระโดดไปรอบ ๆ มินิมาระดับโลก
  • คุณสามารถเห็นผลของการรักษาอัตราการเรียนรู้ให้สูงโดยตรวจสอบกราฟข้อผิดพลาดที่มุมขวาบน
  • สำหรับชุดขนาดที่เล็กกว่าเช่น 1, 0.1 นั้นสูงเกินไปอัตราการเรียนรู้เนื่องจากตัวแบบไม่สามารถมาบรรจบกันได้เมื่อกระโดดไปรอบ ๆ มินิมาทั่วโลก
  • ดังนั้นหากคุณต้องการรักษาอัตราการเรียนรู้ให้อยู่ในระดับสูง (0.1) รักษาขนาดชุดงานให้สูง (10) เช่นกัน ซึ่งมักจะให้การบรรจบที่ช้า แต่นุ่มนวลกว่า

บังเอิญวิธีการที่ฉันมาด้วยเป็นอย่างเดียวกับที่จัดไว้ให้โดยSalvador Dali

กรุณาเพิ่มความคิดเห็นหากคุณพบว่ามีสัญชาติญาณหรือเหตุผลเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.