การลดขนาดอินพุตสำหรับโมเดลการเรียนรู้เชิงลึก

ฉันกำลังติดตามหลักสูตรการเรียนรู้เชิงลึกและมีโมเดลที่สร้างด้วย keras หลังจากประมวลผลข้อมูลล่วงหน้าและเข้ารหัสข้อมูลตามหมวดหมู่แล้ว ฉันจะได้รับอาร์เรย์ของรูปร่าง (12500,) เป็นอินพุตของโมเดล อินพุตนี้ทำให้กระบวนการฝึกโมเดลช้าลงและล่าช้า มีวิธีการลดขนาดของอินพุตให้เหลือน้อยที่สุดหรือไม่?

ข้อมูลเข้าจะจัดหมวดหมู่พิกัดทางภูมิศาสตร์ ข้อมูลสภาพอากาศ เวลา ระยะทาง และฉันกำลังพยายามคาดการณ์เวลาเดินทางระหว่างพิกัดทางภูมิศาสตร์สองพิกัด

ชุดข้อมูลดั้งเดิมมีคุณสมบัติ 8 ประการ และ 5 รายการเป็นหมวดหมู่ ฉันใช้การเข้ารหัส onehot เพื่อเข้ารหัสข้อมูลหมวดหมู่ข้างต้น พิกัดทางภูมิศาสตร์มี 6,000 หมวดหมู่ สภาพอากาศ 15 หมวดหมู่ เวลามี 96 หมวดหมู่ ในทำนองเดียวกันหลังจากเข้ารหัสด้วยการเข้ารหัสแบบ onehot ฉันได้อาร์เรย์ของรูปร่าง (12500,) เป็นอินพุตของโมเดล


comment
อินพุตแสดงถึงอะไร? คุณต้องการทุกอย่างในการป้อนข้อมูลหรือไม่? คุณกำลังพยายามส่งออกอะไร? คุณต้องให้ข้อมูลเพิ่มเติมเพื่อให้ได้คำตอบที่มีความหมาย   -  person Primusa    schedule 15.04.2018
comment
มีการเพิ่มข้อมูลเพิ่มเติมเกี่ยวกับอินพุต   -  person Klaus    schedule 15.04.2018
comment
มันต้องการอาร์เรย์ 12500 อย่างไร? ฉันนับคุณสมบัติห้าประการ!   -  person Primusa    schedule 15.04.2018
comment
ชุดข้อมูลดั้งเดิมมีคุณสมบัติ 8 ประการ และ 5 รายการเป็นหมวดหมู่ ฉันใช้การเข้ารหัส onehot เพื่อเข้ารหัสข้อมูลหมวดหมู่ข้างต้น พิกัดทางภูมิศาสตร์มี 6,000 หมวดหมู่ สภาพอากาศ 15 หมวดหมู่ เวลามี 96 หมวดหมู่ ในทำนองเดียวกันหลังจากเข้ารหัสด้วยการเข้ารหัส onehot ฉันได้อาร์เรย์ของรูปร่าง (12500,) เป็นอินพุตของโมเดล   -  person Klaus    schedule 15.04.2018


คำตอบ (2)


เมื่อจำนวนหมวดหมู่มีขนาดใหญ่ การเข้ารหัสแบบ one-hot จึงไม่มีประสิทธิภาพมากเกินไป ตัวอย่างที่ชัดเจนที่สุดคือการประมวลผลประโยคในภาษาธรรมชาติ ในงานนี้ คำศัพท์มักจะมีคำมากกว่า 100,000 คำหรือมากกว่านั้นด้วยซ้ำ แน่นอนว่าการแปลประโยค 10 คำเป็นเมทริกซ์ [10, 100000] ซึ่งเกือบทั้งหมดเป็นศูนย์จะทำให้เสียความทรงจำ

สิ่งที่งานวิจัยใช้แทนคือ เลเยอร์การฝัง ซึ่งเรียนรู้การนำเสนอคุณลักษณะที่มีหมวดหมู่อย่าง หนาแน่น ในกรณีของคำจะเรียกว่า การฝังคำ เช่น word2vec การแสดงนี้มีขนาดเล็กกว่ามาก เช่น 100 มิติ และทำให้ส่วนที่เหลือของเครือข่ายทำงานอย่างมีประสิทธิภาพด้วยเวกเตอร์อินพุต 100-d แทนที่จะเป็นเวกเตอร์ 100,000-d

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

person Maxim    schedule 15.04.2018

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

วิกิพีเดีย PCA

Vidya PCA เชิงวิเคราะห์

person Shashi Tunga    schedule 15.04.2018
comment
PCA สามารถใช้กับชุดข้อมูลหลังจากเข้ารหัสด้วย hot encoder ตัวเดียวได้หรือไม่ ชุดข้อมูลดั้งเดิมที่ไม่มีการเข้ารหัสประกอบด้วย 8 คุณสมบัติและหลังจากการเข้ารหัสอินพุตจะมีรูปร่างเป็น (15,000,) - person Klaus; 15.04.2018
comment
ฉันคิดว่าการใช้ PCA ก่อนการเข้ารหัสจะไม่สร้างความแตกต่างใด ๆ เนื่องจากหลังจากที่คุณเข้ารหัสแล้วมันจะส่งผลอีกครั้งเป็น (15,000,) ดังนั้นให้ทำหลังจากเข้ารหัสเท่านั้น - person Shashi Tunga; 15.04.2018