(1) use learning rate (2) add test_ICA function