การทำข้อมูลให้เป็นมาตรฐานและมาตรฐานในเครือข่ายประสาทเทียม


39

ฉันพยายามทำนายผลลัพธ์ของระบบที่ซับซ้อนโดยใช้โครงข่ายประสาท (ANN's) ค่าผลลัพธ์ขึ้นอยู่กับช่วงระหว่าง 0 ถึง 10,000 ตัวแปรอินพุตที่ต่างกันมีช่วงที่แตกต่างกัน ตัวแปรทั้งหมดมีการแจกแจงแบบปกติประมาณ

ฉันพิจารณาตัวเลือกต่าง ๆ เพื่อปรับขนาดข้อมูลก่อนการฝึกอบรม ทางเลือกหนึ่งคือการปรับขนาดตัวแปรอินพุต (อิสระ) และเอาต์พุต (ขึ้นอยู่กับ) เป็น [0, 1] โดยการคำนวณฟังก์ชันการแจกแจงสะสมโดยใช้ค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของแต่ละตัวแปรอย่างอิสระ ปัญหาของวิธีนี้คือถ้าฉันใช้ฟังก์ชั่นการเปิดใช้งาน sigmoid ที่เอาต์พุตฉันจะพลาดข้อมูลมากโดยเฉพาะที่ไม่ได้เห็นในชุดฝึกอบรม

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

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


การปรับมาตรฐาน Z บางครั้งใช้ แต่ฉันมีความรู้สึกตลก ๆ มันอาจเป็นชื่ออื่นสำหรับคำตอบของ bayer ??
osknows

มันเหมือนกันยกเว้นส่วนไวท์เทนนิ่ง
bayerj

1
หากคุณทำนายค่า (ตามที่คุณเป็น) แทนที่จะเป็นความน่าจะเป็น (เช่นการถดถอยมากกว่าการจำแนก) คุณควรใช้ฟังก์ชันเอาต์พุตเชิงเส้นเสมอ
seanv507

ยศเกาส์โดยไมเคิล Jahrer มันเป็นอันดับแล้วทำให้เป็นเกาส์น
user3226167

คำตอบ:


32

วิธีการมาตรฐานคือการปรับขนาดอินพุตให้มีค่าเฉลี่ย 0 และความแปรปรวนเท่ากับ 1 นอกจากนี้ยังมีการตกแต่งแนวเส้นตรง / ไวท์เทนนิ่ง / pca ช่วยมาก

หากคุณมีความสนใจในเทคนิคของการค้าขายฉันสามารถแนะนำกระดาษ backprop ที่มีประสิทธิภาพของ LeCun ได้


1
แน่นอนหนึ่งไม่ควรพยายามทำให้เป็นปกติข้อมูลสุ่มสี่สุ่มห้าหากข้อมูลไม่เป็นไปตามการกระจายปกติ (เดียว) stats.stackexchange.com/a/816/4581
4581

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

ฉันค่อนข้างสับสน ลิงค์นี้ ( machinelearningmastery.com/.com/ ) บอกว่าการสร้างมาตรฐานนั้นมีประโยชน์เมื่ออัลกอริทึมที่คุณใช้อยู่สร้างสมมติฐานเกี่ยวกับข้อมูลของคุณที่มีการแจกแจงแบบเกาส์ (ไม่ใช่กรณีของ NN) มิฉะนั้นจะบอกว่าคุณควรใช้ Normalization ใครบางคนสามารถสอนฉันได้ไหม
ihebiheb

20

1- Min-max normalization จะคงการกระจายของคะแนนดั้งเดิมไว้ยกเว้นตัวประกอบสเกลและแปลงคะแนนทั้งหมดเป็นช่วงทั่วไป [0, 1] อย่างไรก็ตามวิธีนี้ไม่สมบูรณ์ (เช่นวิธีนี้มีความไวสูงต่อค่าผิดปกติ

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

3- ค่ามัธยฐานและ MAD: ค่าเบี่ยงเบนแบบสัมบูรณ์และค่ามัธยฐานกลาง (MAD) นั้นไม่ไวต่อค่าผิดปกติและคะแนนในส่วนท้ายสุดของการกระจาย ดังนั้นมันจึงแข็งแกร่ง อย่างไรก็ตามเทคนิคนี้ไม่ได้เก็บการแจกแจงอินพุทและไม่แปลงคะแนนเป็นช่วงตัวเลขทั่วไป

4- tanh-estimators: tanh-estimators ที่นำเสนอโดย Hampel และคณะ มีความแข็งแกร่งและมีประสิทธิภาพสูง การฟื้นฟูจะได้รับจาก

tanh ประมาณค่า โดยที่μGHและσGHเป็นค่าประมาณและค่าเบี่ยงเบนมาตรฐานตามลำดับของการแจกแจงคะแนนของแท้ตามที่กำหนดโดย Hampel

ดังนั้นฉันแนะนำ tanh-estimators

การอ้างอิง https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt


ฉันพบข้อมูลเกี่ยวกับตัวประมาณ tanh นี้ยาก มีใครบ้างไหมที่ให้แสงนี้?
Ben Ogorek

ในที่สุดก็พบกระดาษที่ไม่ได้งานที่ดีอธิบายประมาณ tanh สำหรับการฟื้นฟูที่อยู่: wjscheirer.com/papers/wjs_eccv2010_fusion.pdf พวกเขาไม่ได้ทำงานได้เป็นตัวเลือกการฟื้นฟูตามวัตถุประสงค์ทั่วไป "[ตัวประมาณ Tanh] มีความซับซ้อนในการคำนวณไกลกว่าเมื่อเปรียบเทียบกับ z-score ที่ปรับได้ ... จุดหางสำหรับช่วงเวลาที่แตกต่างกันสามช่วงจากคะแนนมัธยฐานของการแจกแจงจะต้องกำหนดในลักษณะเฉพาะกิจพารามิเตอร์เหล่านี้อาจเป็นเรื่องยาก เพื่อตรวจสอบการทดลองและหากเลือกไม่ถูกต้องให้ จำกัด ประสิทธิภาพของตัวประเมิน tanh "
Ben Ogorek

8

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

มีทรัพยากร usenet ที่ยอดเยี่ยมhttp://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html

มันให้ในแง่ง่าย ๆ ของปัญหาและข้อควรพิจารณาเมื่อต้องการทำให้ปกติ / มาตรฐาน / rescale ข้อมูล เนื่องจากมันปฏิบัติต่อหัวเรื่องจากมุมมองการเรียนรู้ของเครื่องและเนื่องจากคำถามของคุณคือ ML มันอาจมีความเกี่ยวข้องกันบ้าง


คุณควรเขียนประเด็นหลักของแต่ละลิงก์ที่นี่ดังนั้นไม่จำเป็นต้องมี "การนำทาง" เพิ่มเติม
leoschet

2

คุณสามารถทำได้

  • การนอร์มัลไลซ์สูงสุด (ปรับอินพุต / เป้าหมายให้เป็นปกติในช่วง [−1,1]) หรือ
  • การเบี่ยงเบนมาตรฐานเฉลี่ยค่าเบี่ยงเบน (Normalize อินพุต / เป้าหมายให้เป็นศูนย์ค่าเฉลี่ยและค่าความแปรปรวนแบบเอกภาพ / ส่วนเบี่ยงเบนมาตรฐาน)

1

ถ้าคุณกำลังทำงานในpython, sklearnมีวิธีการทำเช่นนี้โดยใช้เทคนิคที่แตกต่างกันของพวกเขาในpreprocessingโมดูล (บวกคุณลักษณะท่อที่ดีด้วยเช่นในเอกสารของพวกเขา):

import sklearn

# Normalize X, shape (n_samples, n_features)
X_norm = sklearn.preprocessing.normalize(X)

0

ทีนี้ [0,1] เป็นวิธีมาตรฐาน สำหรับ Neural Networks ทำงานได้ดีที่สุดในช่วง 0-1 การปรับขนาด Min-Max (หรือ Normalization) เป็นแนวทางในการติดตาม

ในค่าผิดปกติในสถานการณ์ส่วนใหญ่เราต้องตัดค่าเหล่านั้นเนื่องจากค่าผิดปกติไม่ใช่เรื่องธรรมดาคุณไม่ต้องการค่าผิดปกติที่ส่งผลกระทบต่อโมเดลของคุณ (เว้นแต่การตรวจจับความผิดปกติเป็นปัญหาที่คุณกำลังแก้ไข) คุณสามารถคลิปได้ตามกฎของ Empirical 68-95-99.7 หรือทำพล็อตกล่องสังเกตและคลิปตามนั้น

สูตร MinMax - (xi - min(x)) / (max(x) - min(x)) หรือสามารถใช้sklearn.preprocessing.MinMaxScaler


-1

"ยอมรับ" คือสิ่งที่ดีที่สุดสำหรับคุณ - จากนั้นคุณยอมรับ

จากประสบการณ์ของฉันเหมาะสมการกระจายจากตระกูลการกระจายของ Johnson ไปยังแต่ละคุณสมบัติต่อเนื่องทำงานได้ดีเพราะการแจกแจงนั้นมีความยืดหยุ่นสูงและสามารถแปลงคุณสมบัติ uni-modal ส่วนใหญ่ให้เป็นการแจกแจงแบบปกติมาตรฐาน มันจะช่วยให้มีคุณสมบัติหลายโมดอลเช่นกัน แต่จุดคือโดยทั่วไปแล้วจะทำให้คุณสมบัติเป็นรูปแบบที่ต้องการมากที่สุด (ข้อมูลแบบกระจายแบบเกาส์มาตรฐานเหมาะสำหรับการทำงานด้วย - มันเข้ากันได้กับและบางครั้งก็เหมาะสมที่สุด มีวิธีการทางสถิติ / ML)

http://qualityamerica.com/LSS-Knowledge-Center/statisticalinference/johnson_distributions.php

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