[05/05/2020 00:48] Xin chào mọi người! Sau bài giới thiệu thuật toán . . .


#1

Nguồn post: https://www.facebook.com/257768141347267_951094685347939
Xin chào mọi người! Sau bài giới thiệu thuật toán tối ưu mới (tuần trước), mình rất vui khi có cơ hội được nói chuyện và mở mang kiến thức bởi các cao thủ AI trong forum mình. Mình xin được mạnh dạn đặt câu hỏi: Những parameters của deep learning models được optimize như nào ạ, vì sao không dùng metaheuristic optimization algorithm (như hybrid models trong machine learning)?

Mong được chỉ giáo ạ! Many thanks!


#2

Theo kiến thức của mình thì sẽ dùng gradient descent để optimize. Nhiều phương pháp khác đều là improved version của gradient descent như Adam.


#3

Mình cũng không biết nhiều về meta heuristic, nên mình so sánh theo hiểu biết của mình. Trong deep learning những parameters được update bằng thuật toán back-propagation và một optimization algorithm như gradient decent để update những weights của từng layer. Đây là cách thông dụng nhất vì chi phí tính toán hợp lý hơn và dễ thực hiện hơn so với meta heuristic, trong trường hợp tính toán với số chiều không gian lớn. Với lại theo mình nghĩ meta heuristic không đảm bảo tìm được một solution local minimum tốt bằng gradient decent vì GD biết rằng hướng đi nào là tốt trong khi meta heuristic có thể bỏ qua những solution tốt hơn ( ví dụ thuật toán tiến hoá)


#4

Có thể chia tiếp cận evolutionary computation (EC) cho deep learning thành 3 nhóm. Nhóm 1 là dùng EC để tối ưu topology. Điều này có nghĩa là với training và validation đã cho, bạn tìm ra cấu hình phù hợp nhất, ví dụ lớp đầu tiên sẽ là Convolutional Layer với kích thước bao nhiêu, theo sau đó là layer nào, convolutional layer tiếp hay pooling layer. Nhóm thứ 2 là dùng EC để tìm trọng số huấn luyện thay vì dùng backpropagation như truyền thống vẫn làm. Nhóm này sẽ dùng EC để xấp xỉ trọng số, đạt đc mục đích là giảm bộ nhớ. Nhóm thứ 3 là dùng EC để tối ưu hyperparameters của mô hình deep learning như learning rate, tối ưu bằng thuật toán nào,…Không viết đc dài nhưng hy vọng giúp bạn hiểu


#5

Với machine learning bạn sẽ dùng các evolutionary optimization algorithm dựa trên stochastic techniques để khắc phục local minima của ML dựa trên gradient descent techniques bằng cách đơn giản nhất là tune tham số huấn luyện, tuy nhiên với deep learning thì có nhiều lớp và khi qua mỗi lớp, ưu điểm của các thuật toán tối ưu tiến hoá sẽ bị mất đi nên sẽ không còn hiệu quả như ở ML. Một số người hiện nay thấy mảnh đất AI, ML, deep learning đang là hot trend nên nhiều lúc cứ kết hợp và publish bừa. Tớ đã review một số bài mà giáo sư hướng dẫn nhờ cho một số tạp chí và biết được đó là thật hay giả, dù hình ảnh in ra có vẻ rất phức tạp và ghê gớm.


#6

FYI, https://arxiv.org/abs/1703.03864


#7

Theo mình biết các thuật toán tối ưu meta heuristic, về bản chất là tối ưu dựa trên kinh nghiệm, tìm kiếm tối ưu cục bộ hay toàn cục. Vì là heuristic nên áp dụng vào bài toán này thì thành công, bài toán kia thì không. Đối với ML, DL thì phụ thuộc vào mỗi Dataset xây dựng model riêng.


#8

Dùng stochastic gradient descent để training và back propagation để tính gradients. Pytorch sử dụng auto grad algorithm để tính gradients. Đấy là cái cơ bản tôi được học thôi.