hoangminhquan-lhsdt / optimizers

Implementation of various optimizers running on test functions for optimization
2 stars 1 forks source link

Review Tóm tắt + Chương 1 #3

Open hoangminhquan-lhsdt opened 3 years ago

hoangminhquan-lhsdt commented 3 years ago

Thưa thầy @KienTrann

Hiện tại chúng em đã viết hoàn chỉnh phiên bản đầu tiên của phần Tóm tắt và Chương 1: Giới thiệu.

Xin thầy xem qua và nhận xét giúp ạ.

Ngoài ra thì em cũng muốn hỏi thêm là phần Tóm tắt có cần thiết hay không? Bởi vì trong Khóa luận mà thầy gửi cho chúng em tham khảo thì có phần Tóm tắt riêng trước Chương 1, nhưng trong mẫu LaTeX của Khoa thì file chapter1.tex có ghi %Tóm tắt luận văn được trình bày nhiều nhất trong 24 trang in trên hai mặt giấy... nên em hơi bối rối về phần này. Mong thầy giải đáp giúp em ạ.

Chúng em xin cám ơn thầy.

KienTrann commented 3 years ago

Uh, để mình xem.

Phần Tóm tắt trước chương 1 thường là 1-2 trang. Chương 1 thì nhiều hơn, 7-10 trang. Phần Tóm tắt trước chương 1 thì cứ để sau cùng rồi hãy viết (nếu viết rồi thì để sau cùng hãy chỉnh sửa); mình cũng không nghĩ phần này là quá quan trọng, nhưng có yêu cầu trong cấu trúc khóa luận (em có thể check lại).

KienTrann commented 3 years ago

Mình gửi review chương 1 của version này.

Nhìn chung, về mặt cấu trúc thì mình thấy tương đối ổn, nhưng về mặt nội dung cũng như về mặt câu chữ thì chưa ổn. Vì mình thấy có khá nhiều cái phải sửa nên mình sẽ chia ra thành nhiều phần. Dưới đây mình sẽ bắt đầu với phần mà mình nghĩ là quan trọng nhất (vì sẽ liên quan đến chương 3 & 4).

Đoạn văn về "rãnh hẹp"

Một trường hợp thể hiện hướng đi của gradient không phù hợp là trường hợp di chuyển trong rãnh hẹp, hai bên có độ dốc cao và một rãnh thấp ở giữa. Khi đó, gradient sẽ hướng về phía sườn dốc còn lại thay vì hướng theo rãnh thấp, khiến cho điểm di chuyển bị dao động mạnh trong khi độ lỗi không giảm nhiều.

Mình nghĩ vấn đề "rãnh hẹp" là một vấn đề nổi cộm khi nói về bề mặt lỗi (error surface) của mạng nơ-ron nhiều tầng ẩn (vì các trọng số ở các tầng khác nhau thường sẽ có đạo hàm với phổ độ lớn khác nhau); vấn đề này lúc sau cũng sẽ liên quan trực tiếp tới Adam. Trong tài liệu này (mình tìm thấy trong một course của Jimmy Ba), có đoạn: \ "A region with badly conditioned curvature is sometimes called a ravine, because of what it looks like in a surface plot of the cost function. Think about the effect this has on optimization. You need to set α small enough that you don’t get oscillations or instability in the high curvature directions. But if α is small, then progress will be very slow in the low curvature directions.

In practice, neural network training is very badly conditioned. This is likely a big part of why modern neural nets can take weeks to train."

Tuy nhiên, mình thấy hiện giờ tụi em chưa làm nổi bật vấn đề "rãnh hẹp" của mạng nơ-ron nhiều tẩng ẩn lắm.

Hiện tượng dao động này có thể được khắc phục một phần bằng quán tính, tuy nhiên chính quán tính lại có thể tạo ra một số vấn đề như đi vượt khỏi điểm cực tiểu mong muốn. Trong khi đó, những phương pháp sử dụng tỉ lệ học thích ứng mặc dù di chuyển tốt hơn về phía điểm cực tiểu, nhưng lại thực hiện những bước cập nhật rất chậm. Ngoài ra, lợi thế của tỉ lệ học riêng biệt cho từng trọng số cũng bị suy giảm nếu như các trọng số phụ thuộc vào nhau.

Đoạn văn về Adam

Ý tưởng của thuật toán là kết hợp hai hướng tiếp cận trước đó: (1) sử dụng quán tính để tăng tốc và giảm dao động, và (2) thích ứng lượng cập nhật cho từng trọng số.

Nhờ sự kết hợp này, Adam kế thừa được nhiều ưu điểm, đồng thời khắc phục những hạn chế của các hướng tiếp cận trên khi có thể tăng giảm độ dài bước cập nhật tùy theo điều kiện bề mặt lỗi, cũng như điều chỉnh tỉ lệ học thích ứng cho từng trọng số của mạng nơ-ron.

Cái này có vẻ lặp lại phần trên, đúng không?

hoangminhquan-lhsdt commented 3 years ago

Thưa thầy,

Sau khi tham khảo ý kiến của thầy và thảo luận lại, tụi em quyết định sẽ sửa lại một số điểm như sau:

Về một số câu hỏi mà thầy đưa ra, tụi em xin phép giải thích:

Gradient Descent với learning rate nhỏ cũng [di chuyển tốt hơn về phía điểm cực tiểu, nhưng lại thực hiện những bước cập nhật rất chậm] mà, đúng không? Vậy phương pháp sử dụng tỉ lệ học thích ứng có gì đặc biệt?

GD với learning rate nhỏ vẫn bị phụ thuộc vào hướng của gradient, cho nên các bước cập nhật vẫn luôn đi theo hướng của gradient trong khi chưa chắc hướng đó chỉ về phía cực tiểu. Còn adaptive cập nhật một lượng khác nhau cho từng chiều, cho nên sẽ có xu hướng di chuyển trực tiếp theo hướng "direct" tới cực tiểu hơn. Để GD có thể hướng về cực tiểu tốt hơn thì learning rate sẽ phải rất nhỏ, và khiến cho việc di chuyển rất khó khăn khi đã tiến tới phần bằng phẳng hơn của rãnh; trong khi phương pháp adaptive vẫn có thể sử dụng learning rate lớn hơn mà vẫn di chuyển về hướng của cực tiểu.

Mình nghĩ momentum dạng thông thường sẽ giúp ích trong trường hợp "rãnh hẹp" (bất chấp align hay không align); còn RMSprop và Adam sẽ giúp ích trong trường hợp "rãnh hẹp" mà align, đặc biệt khi mà phổ độ lớn của các đạo hàm riêng khác nhau rất nhiều (trong trường hợp này momentum có thể sẽ không fix được). Trong trường hợp "rãnh hẹp" không align thì Adam sẽ như thế nào, liệu phần momentum trong Adam có biểu hiện ra được không? Mình không biết, tụi em thử tìm hiểu và thí nghiệm xem.

Tụi em đã có cho thầy xem thí nghiệm và cho thấy kết quả giống với ý của thầy.

Trong trường hợp đến gần cực tiểu, momentum dạng thông thường có thể bị đi quá cực tiểu, còn momentum trong Adam thì sao? Lúc này, phần trung bình chạy của bình phương gradient sẽ nhỏ --> phần này cũng làm cho RMSprop và Adam cũng có nguy cơ đi quá cực tiểu?

Em không chắc là em hiểu đúng ý thầy, vì thầy nói về momentum nhưng lại liên hệ với bình phương gradient trong khi bình phương gradient được dùng cho adaptive. Cho nên em sẽ chia ý này thành 2 ý nhỏ:

Trong trường hợp vùng gần như là bằng phẳng (tuy nhiên vẫn có độ nghiêng nhỏ), momentum dạng thông thường thì sẽ giúp tăng tốc nhưng momentum trong Adam thì sao? Trong trường hợp này, phần trung bình chạy của bình phương gradient sẽ nhỏ --> phần này cũng giúp RMSprop và Adam tăng tốc? Mình không chắc chắn lắm, tụi em xem thử thế nào.

Thí nghiệm này chúng em chưa thực hiện nên em sẽ báo cáo lại với thầy sau ạ.

KienTrann commented 3 years ago

Uh, về vụ sửa thì tụi em cứ sửa đi; mình thấy các ý sửa của tụi em cũng hợp lý. Còn về vụ thảo luận về Adam thì mình sẽ xem thêm và sẽ thảo luận với tụi em sau.