ฟาสติก้า
FastICAเป็นอัลกอริทึมที่มีประสิทธิภาพและเป็นที่นิยมสำหรับการวิเคราะห์ส่วนประกอบอิสระซึ่งคิดค้นโดยAapo Hyvärinenที่มหาวิทยาลัยเทคโนโลยีเฮลซิงกิ [ 1 ] [ 2 ] เช่นเดียวกับอัลกอริทึม ICA ส่วนใหญ่ FastICA แสวงหาการหมุนแบบตั้งฉากของ ข้อมูล ที่ผ่านการทำให้ขาวล่วงหน้า ผ่าน แผนการวนซ้ำแบบจุดคงที่ซึ่งจะเพิ่มค่าการวัดความไม่เป็นเกาส์เซียนของส่วนประกอบที่หมุนให้สูงสุด ความไม่เป็นเกาส์เซียนทำหน้าที่เป็นตัวแทนของความเป็นอิสระทางสถิติซึ่งเป็นเงื่อนไขที่เข้มงวดมากและต้องใช้ข้อมูลอนันต์ในการตรวจสอบ FastICA ยังสามารถได้มาจากการวนซ้ำแบบนิวตันโดยประมาณได้อีกด้วย
อัลกอริทึม
การปรับ ข้อมูลให้เป็นสีขาวล่วงหน้า
ปล่อยให้ :=(x_{ij})\in \mathbb {R} ^{N\times M}} แทนเมทริกซ์ข้อมูลอินพุตจำนวนคอลัมน์ที่สอดคล้องกับจำนวนตัวอย่างของสัญญาณผสมและจำนวนแถวที่สอดคล้องกับจำนวนสัญญาณแหล่งกำเนิดอิสระ เมทริกซ์ข้อมูลอินพุตต้องทำการปรับภาพให้ขาวขึ้นก่อนหรือจัดตำแหน่งภาพให้อยู่ตรงกลางและปรับภาพให้ขาวขึ้น ก่อนที่จะนำอัลกอริทึม FastICA ไปใช้กับภาพนั้น
- การจัดข้อมูลให้อยู่ตรงกลางหมายถึงการลดค่าความสำคัญของแต่ละองค์ประกอบของข้อมูลป้อนเข้านั่นคือ
- สำหรับแต่ละคนและหลังจากจัดให้อยู่ตรงกลางแล้ว แต่ละแถวของมีค่าที่คาดหวังเท่ากับ.
- การทำให้ ข้อมูลเป็นสีขาว ต้องใช้ การแปลงเชิงเส้น :\mathbb {R} ^{N\times M}\to \mathbb {R} ^{N\times M}} ของข้อมูลที่เป็นศูนย์กลาง เพื่อให้ส่วนประกอบของไม่มีความสัมพันธ์กันและมีค่าความแปรปรวนเท่ากับหนึ่ง กล่าวคือ ถ้าเป็นเมทริกซ์ข้อมูลศูนย์กลาง โดยค่าความแปรปรวนร่วมของคือเมทริกซ์ เอกลักษณ์มิติ นั่นคือ
- วิธีการทั่วไปในการปรับค่าให้ขาวขึ้นคือการทำการแยกส่วนค่าลักษณะเฉพาะ (eigenvalue decomposition)บนเมทริกซ์ความแปรปรวนร่วมของข้อมูลที่ปรับค่าศูนย์กลางแล้ว,, ที่ไหนคือเมทริกซ์ของเวกเตอร์ลักษณะเฉพาะและคือเมทริกซ์แนวทแยงของค่าลักษณะเฉพาะ เมทริกซ์ข้อมูลที่ผ่านการทำให้ขาวแล้วถูกกำหนดดังนี้
การสกัดส่วนประกอบเดี่ยว
อัลกอริทึมแบบวนซ้ำจะค้นหาทิศทางสำหรับเวกเตอร์น้ำหนัก ซึ่งทำให้ค่าการวัดความไม่เป็นแบบเกาส์เซียนของการฉายภาพมีค่าสูงสุด, กับซึ่งหมายถึง เมทริกซ์ข้อมูล ที่ผ่านการปรับค่าสีขาวล่วงหน้าตามที่อธิบายไว้ข้างต้น โปรดทราบว่าเป็นเวกเตอร์คอลัมน์ ในการวัดความไม่เป็นแบบเกาส์เซียน FastICA อาศัยฟังก์ชันไม่เชิงเส้น ที่ไม่ใช่กำลังสองอนุพันธ์อันดับแรกของมันและอนุพันธ์อันดับสองของมันไฮวาริเนนระบุว่าหน้าที่ต่างๆ
มีประโยชน์สำหรับการใช้งานทั่วไป ในขณะที่
อาจมีความทนทานสูง[ 1 ]ขั้นตอนในการดึงเวกเตอร์น้ำหนักสำหรับคอมโพเนนต์เดี่ยวใน FastICA มีดังต่อไปนี้:
- สุ่มเวกเตอร์น้ำหนักเริ่มต้น
- อนุญาต, ที่ไหนหมายถึงการหาค่าเฉลี่ยของเวกเตอร์คอลัมน์ทั้งหมดของเมทริกซ์
- อนุญาต
- ถ้ายังไม่บรรจบกัน ให้กลับไปที่ขั้นตอนที่ 2
การสกัดส่วนประกอบหลายรายการ
อัลกอริทึมแบบวนซ้ำหน่วยเดียวจะประมาณเวกเตอร์น้ำหนักเพียงเวกเตอร์เดียว ซึ่งจะดึงส่วนประกอบออกมาเพียงส่วนเดียว การประมาณส่วนประกอบเพิ่มเติมที่ "เป็นอิสระ" ต่อกันนั้น จำเป็นต้องทำซ้ำอัลกอริทึมเพื่อให้ได้เวกเตอร์การฉายภาพที่เป็นอิสระเชิงเส้น - โปรดทราบว่าแนวคิดเรื่อง ความเป็นอิสระในที่นี้หมายถึงการเพิ่มค่าความไม่เป็นแบบเกาส์เซียนในส่วนประกอบที่ประมาณได้สูงสุด Hyvärinen ได้เสนอวิธีการดึงส่วนประกอบหลายส่วนหลายวิธี โดยวิธีที่ง่ายที่สุดคือวิธีต่อไปนี้เป็นเวกเตอร์คอลัมน์ที่มีค่าเป็น 1 ทั้งหมด โดยมีมิติเท่ากับ.
อัลกอริทึม FastICA
- ป้อนข้อมูล:จำนวนส่วนประกอบที่ต้องการ
- ป้อนข้อมูล:เมทริกซ์ที่ผ่านการปรับค่าความขาวล่วงหน้า โดยแต่ละคอลัมน์แสดงถึงตัวอย่างมิติ โดยที่
- ผลลัพธ์:เมทริกซ์การแยกส่วนผสม โดยแต่ละคอลัมน์จะฉายภาพไปยังส่วนประกอบอิสระ
- ผลลัพธ์:เมทริกซ์ส่วนประกอบอิสระ พร้อมด้วยคอลัมน์ที่แสดงถึงตัวอย่างที่มี มิติ
สำหรับ p ใน 1 ถึง C: เวกเตอร์สุ่มที่มีความยาว N ในขณะที่การเปลี่ยนแปลง เอาต์พุตเอาต์พุต
ดูเพิ่มเติม
- การเรียนรู้แบบไม่มีผู้กำกับดูแล
- การเรียนรู้ของเครื่อง
- ไลบรารีIT++มีการใช้งาน FastICA ที่เขียนด้วยภาษาC++
- อินโฟแม็กซ์
ลิงก์ภายนอก
- FastICA ใน Python
- แพ็คเกจ FastICA สำหรับ Matlab หรือ Octave
- แพ็กเกจ fastICAในภาษาโปรแกรม R
- FastICA ในภาษา JavaบนSourceForge
- FastICA ในภาษา Java บนRapidMiner
- FastICA ใน Matlab
- FastICA ใน MDP
- ฟาสติก้าในจูเลีย