Việc tạo ra thuật toán fastICA chỉ yêu cầu làm trắng trong một bước duy nhất. Đầu tiên, bạn chọn hướng của bước (như độ dốc giảm dần) và điều này không yêu cầu dữ liệu trắng. Sau đó, chúng ta phải chọn kích thước bước, phụ thuộc vào nghịch đảo của Hessian. Nếu dữ liệu được làm trắng thì Hessian này là đường chéo và không thể đảo ngược.
Vì vậy, nó là cần thiết? Nếu bạn chỉ cố định kích thước bước thành một hằng số (do đó không yêu cầu làm trắng), bạn sẽ có độ dốc gốc tiêu chuẩn. Gradient giảm dần với kích thước bước nhỏ cố định thường sẽ hội tụ, nhưng có thể chậm hơn nhiều so với phương thức ban đầu. Mặt khác, nếu bạn có một ma trận dữ liệu lớn thì việc làm trắng có thể khá tốn kém. Bạn có thể tốt hơn ngay cả với sự hội tụ chậm hơn mà bạn nhận được mà không cần làm trắng.
Tôi đã ngạc nhiên khi không thấy đề cập đến điều này trong bất kỳ tài liệu. Một bài viết thảo luận về vấn đề:
Các thuật toán ICA nhanh mới để phân tách nguồn mù mà không cần biết
trước bởi Jimin Ye và Ting Huang.
Họ đề nghị một lựa chọn rẻ hơn để làm trắng. Tôi ước họ đã bao gồm sự so sánh rõ ràng về việc chỉ chạy ICA mà không làm trắng làm cơ sở, nhưng họ đã không làm thế. Là một điểm dữ liệu nữa, tôi đã thử chạy fastICA mà không làm trắng các vấn đề về đồ chơi và nó hoạt động tốt.
Cập nhật: một tài liệu tham khảo tốt khác về làm trắng có ở đây: phân tích thành phần độc lập mạnh mẽ, Zaroso và Comon . Họ cung cấp các thuật toán không yêu cầu làm trắng.