PHƯƠNG PHÁP HỌC CHO MẠNG TIẾN (FEEDFORWARD) ĐA MỨC
2.2.3 Một số kinh nghiệm nhằm nâng cao tính năng của thuật toán Back-propagation
năng của thuật toán Back-propagation
Người ta thường nói rằng việc thiết kế mạng neuron sử dụng thuật toán back-propagation là một nghệ thuật hơn là một khoa học. Điều này cũng có vài phần hợp lý, và trong thực tế cũng có một số kinh nghiệm có khả năng cải thiện đáng kể tính năng của thuật toán back-propagation như được mô tả dưới đây.
1. Cực đại hoá nội dung thông tin. Mọi ví dụ tích luỹ được dùng cho thuật toán back-propagation nên được chọn dựa trên cơ sở nội dung thông tin của nó là lớn nhất có thể được đối với công việc cụ thể đang xét. Có hai cách để đạt được mục đích này là:
* Sử dụng ví dụ tích luỹ mà dẫn đến lỗi tích luỹ lớn nhất.
* Sử dụng các ví dụ tích luỹ mới khác một cách căn bản so với các ví dụ đã được sử dụng trước đó.
Trong các công việc nhận dạng mẫu, một kỹ thuật đơn giản hay được sử dụng là chọn một cách ngẫu nhiên thứ tự các ví dụ được xử lý cho mỗi Thời kỳ.
Việc chọn ngẫu nhiên như vậy đảm bảo rằng các ví dụ liên tiếp nhau hiếm khi thuộc cùng một lớp.
2. Hàm kích hoạt. Một mạng tiến đa mức được tích luỹ bằng thuật toán back-propagation có thể học nhanh hơn khi sử dụng hàm kích hoạt phản đối xứng. Chúng ta nói rằng một hàm kích hoạt (v) là phản đối xứng nếu
(-v)=-(v)
Một ví dụ của một hàm kích hoạt phản đối xứng là hàm tang hyperbol như sau (v)=a tanh(bv) Các giá trị thích hợp cho a và b là a=1.7159 và b=2/3
Hàm tang hyperbol có có hai thuộc tính hữu ích sau:
* (1)=1 và (-1)=-1
* Tại gốc toạ độ, hệ số góc của hàm kích hoạt xấp xỷ bằng 1
‘(0)=ab
=1.71592/3 =1.1424
3. Các giá trị đích. Một điều hết sức quan trọng là các giá trị đích (đáp ứng mong muốn) được chọn trong phạm vi của hàm kích hoạt. Một cách cụ thể hơn, đáp ứng mong muốn dj cho neuron j trong mức đầu ra nên có trị tuyệt đối nhỏ hơn một giá trị nào đó so với giá trị giới hạn của hàm kích hoạt tuỳ theo giá trị giới hạn đó là dương hay âm. Để thấy rõ hơn, hãy xem xét trường hợp hàm kích hoạt phản đối xứng. Với giá trị giới hạn +a, chúng ta đặt
và với giá trị giới hạn -a, chúng ta đặt
dj=-a+
ở đó là một hằng số dương thích hợp. Với việc chọn a=1.7159, chúng ta có thể đặt =0.7159, và như vậy giá trị đích dj có thể được chọn là 1.
4. Chuẩn hoá đầu vào. Một biến đầu vào nên được xử lý sao cho giá trị trung bình của nó, tính trên toàn bộ tập hợp tích luỹ, là gần với không. Để đánh giá ý nghĩa thực tế của quy tắc này, hãy xem xét trường hợp mà ở đó các biến đầu vào luôn dương. Trong tình huống này, các trọng số synapse của một neuron trong mức ẩn đầu tiên có thể chỉ cùng tăng hay cùng giảm. Như vậy, vector trọng số của neuron này có xu hướng đi theo đường zigzag trên bề nặt lỗi và sẽ chậm hội tụ; tức là nên tránh những tình huống như vậy.
Để tăng tốc quá trình học back-propagation, trong việc chuẩn hoá đầu vào còn cần phải chú ý tới hai điều sau:
* Giữa các biến đầu vào nên không có sự tương quan (phân bố xác suất độc lập).
* Các biến đầu vào nên được nhân tỷ lệ sao cho phương sai của chúng phải xấp xỷ nhau để đảm bảo rằng các trọng số synapse khác nhau học với tốc độ xấp xỷ nhau.
5. Sự khởi đầu. Một sự lựa chọn tốt cho các giá trị khởi đầu của các trọng số synape và các hệ số hiệu chỉnh của mạng có ý nghĩa vô cùng quan trọng trong việc thiết kế mạng. Câu hỏi đặt ra ở đây là: Thế nào là một lựa chọn tốt?
Khi các trọng số synapse được gán các giá trị khởi đầu lớn, rất có khả năng là các neuron của mạng sẽ đi đến trạng thái bão hoà. Nếu điều này xảy ra, các gradient cục bộ trong thuật toán back-propagation đạt các giá trị nhỏ, và sẽ làm cho quá trình học chậm đi. Tuy nhiên, nếu các trọng số synapse được gán các giá trị khởi đầu nhỏ, thuật toán back-propagation có xu hướng hoạt động trên một vùng bằng phẳng xung quanh gốc của bề mặt lỗi; điều này đặc biệt đúng trong trường hợp các hàm kích hoạt là phản đối xứng. Bởi những lý do này, việc sử
dụng các giá trị lớn hay các giá trị nhỏ cho việc khởi đầu các trọng số synapse đều nên tránh. Lựa chọn thích hợp ở đây là những giá trị nằm giữa hai thái cực đó.
Để rõ hơn, hãy xem xét ví dụ về một mạng tiến đa mức sử dụng hàm tang hyperbol cho các hàm kích hoạt của nó. Đặt hệ số hiệu chỉnh của mỗi neuron trong mạng bằng không. Giả sử rằng các đầu vào của mỗi neuron trong mạng có trung bình bằng không và phương sai bằng một; các trọng số synapse được lấy từ một tập hợp các số phân bố đều có trung bình bằng không. Trong trường hợp này, người ta gợi ý rằng nên chọn các trọng số sao cho phương sai của chúng bằng nghịch đảo của căn bậc hai số các kết nối synapse của một neuron.
6. Tốc độ học. Về mặt lý tưởng, tất cả các neuron trong mạng tiến đa mức nên học với cùng một tốc độ. Mức cuối cùng thường xuyên có gradient cục bộ lớn hơn các mức ở phía trước. Như vậy, tham số tốc độ học nên được gán một giá trị nhỏ hơn. Các neuron với nhiều đầu vào nên có một tham số tốc độ học nhỏ hơn để giữ một thời gian học tương tự nhau cho tất cả các neuron trong mạng. Có một gợi ý là đối với một neuron, tham số tốc độ học nên tỷ lệ nghịch với căn bậc hai của các kết nối synapse nối tới neuron đó. Chúng ta sẽ bàn kỹ hơn tới tốc độ học trong phần 2.2.7.