Gần đây, Deep Learning đã nổi lên là một kĩ thuật rất “hot” của Machine Learning. Kĩ thuật này đã gặt hái được nhiều thành công trong các kết qủa nghiên cứu cũng như những ứng dụng thông minh ngoài thực tế đòi hỏi phải có độ chính xác cao, biến những điều dường như chỉ tồn tại trong phim viễn tưởng trở thành hiện thực.
Những năm 90 của thế kỷ trước con người đã cho rằng máy móc không thể làm những việc mang tính sáng tạo thì giờ đây AI đã sáng tác được tiểu thuyết, vẽ tranh.
Trước đây con người nhận định AI không thể chiến thắng được con người trong môn cờ vây với số nước đi gấp nhiều lần số lương nguyên tử trong vũ trụ thì AlphaGo đã đánh bại kỳ thủ cờ vậy số một thế giới Ke Jie với tỷ số 2-0, trước đó cũng đã hạ gục huyền thoại cờ vây của Hàn Quốc Lee Sedol với tỷ số 4-1.
Còn trong lĩnh vực y học, cỗ máy IBM Watson được đánh giá có khả năng chuẩn đoán giỏi hơn bất kỳ bác sỹ nào trong tất cả các loại bệnh. Gần đây, trí tuệ nhân tạo Watson của IBM đã phát hiện ra một loại bệnh mà các bác sỹ đã bó tay không thể tìm ra ở một nữ bệnh nhân. Bằng cách so sánh bộ gen của người phụ nữ này với hơn 20 triệu kết quả nghiên cứu bệnh khác, Watson đã đưa ra kết quả là một chứng leukemia cực kỳ hiếm gặp chỉ trong 10 phút.
Năm ngoái, Facebook cũng thành lập AI Research Unit, đơn vị nghiên cứu về AI sử dụng deep learning vào việc tạo ra các giải pháp hiệu quả hơn giúp nhận diện khuôn mặt và sự vật trên 350 triệu bức ảnh và video được đăng tải lên Facebook mỗi ngày.
Một ví dụ tiêu biểu khác về deep learning trong thực tế là khả năng nhận diện giọng nói của các trợ lý ảo Google Now và Siri. Dự án xe tự lái của Google hay Apple chuẩn bị đi vào thực tế cũng nhờ kỹ thuật Deep Learning.
Hay câu chuyện về Speech to Text của tiếng Anh. Nó là một bài toán rất khó tuy nhiên khi đưa bộ dữ liệu vào Deep Learning train trong một tuần nhận được model với độ chính xác lên đến 95%. Quá tuyệt!
Chúng đều là những vấn đề từng rất khó khăn với các nhà nghiên cứu AI.
Với những thành công rực rỡ như vậy thì Deep Learning là gì mà thế giới đang phải phát điên vì nó và phải chăng chúng ta đã tìm ra chìa khóa vạn năng cho mọi vấn đề của AI?
Deep Learning là gì?
“Deep learning is a class of machine learning algorithms, Deep learning is the application of artificial neural networks (ANNs) to learning tasks that contain more than one hidden layer.”
Đây là một định nghĩa hình thức của Deep Learning. Tuy nhiên chúng ta có thể hiểu một cách đơn giản Deep learning mô phỏng lại mạng Neural não bộ của con người trong việc học hỏi.
Chìa khóa vạn năng cho AI?
Chúng ta đã nhìn thấy quá nhiều ưu điểm Deep Learning. Kết quả thực nghiệm trong vài năm trở lại đây đã chỉ ra rằng deep learning là thuật toán mạnh mẽ và tốt nhất khi làm việc trên Big Data, nó đã đánh bại nhiều thuật toán dự đoán khác khi thực hiện trên các tập dữ liệu nhiều hơn 100 triệu dòng.
Vậy phải chăng Deep Learning là hoàn hảo và không có nhược điểm gì. Liệu deep learning có làm cho các thuật toán khác trở nên lỗi thời? Hãy nhìn kỹ lại một lần nữa chúng ta sẽ thấy để làm được điều đó thì Deep Learning có một mô hình tính toán rất phức tạp và cần phải được đáp ứng những điều sau:
- Lượng dữ liệu dồi dào.
- Tốc độ tính toán của máy tính nhanh.
Với những đặc điểm như vậy của Deep Learning chúng ta cần cân nhắc khi sử dụng trong những trường hợp sau:
Các bài toán đơn giản, lượng dữ liệu không nhiều
Với những bài toán đơn giản, lượng dữ liệu không nhiều thì Deep Learning không hiệu quả.
Tôi đã làm một bài toán ví dụ như sau:
Phân loại hoa Iris dựa vào chiều dài cánh hoa và lá. Bộ dữ liệu là bộ dữ liệu chuẩn kinh điển trong thư viện Machine Learning, bao gồm chiều dài cánh hoa và lá của ba kiểu hoa Iris: Setosa, Versicolour và Virginica.
Cấu hình máy của FSOFT: CPU Intel Core i3, ram 8G DDR3.
Với thuật toán Xgboost tree máy chạy model trong 1.89s cho ra độ chính xác 96.03%
Với thuật toán Deep Learning với 50 epochs máy chạy trong 11ph 12s cho ra độ chính xác 92.86%
Rõ ràng Deep Learning đã tệ hơn trong bài toán này. Như vậy với các bài toán đơn giản không dại gì mà chúng ra sử dụng “dao mổ trâu để giết gà” vừa tốn công sức mà lại không hiệu quả.
Ngoài ra, tôi cần nhấn mạnh rằng không có một thuật toán Machine Learning nào hoàn hảo cho tất cả các bộ dữ liệu. Ví dụ HMMs sẽ tốt hơn Deep Learning cho nhận dạng tiếng nói và Wavelets sẽ tốt hơn Deep Learning trong xử lý ảnh…
Các bài toán có ngân sách thấp hoặc yêu cầu không cao
Deep Learning là các mô hình rất linh hoạt, với vô số kiến trúc và các kiểu node, thuật toán tối ưu hóa, và các chiến lược regularization. Tùy thuộc vào ứng dụng, mô hình của bạn có thể có các Convolution layer (CNN) Hoặc cấu trúc recurrent (RNN). Nó có thể thực sự sâu (với rất nhiều lớp ẩn) hoặc chỉ với một vài lớp ẩn. Nó có thể sử dụng hàm Linear Activation hoặc Nolinear Activation. Nó có thể hoặc có thể không có dropout. Và các trọng số thường được regularize (l1, l2).
Đây chỉ là một phần danh sách, có rất nhiều loại khác nhau của các node, các connection và các hàm loss để tinh chỉnh. Do đó việc tạo ra một mô hình Deep Learning tốn rất nhiều chi phí về thời gian và resources. Bạn có thể ngạc nhiên vì SVM tuyến tính thực sự là tất cả những gì bạn cần.
Các bài toán mà model hay các feature, các parameter, hyper parameter cần được diễn giải tường minh cho người dùng
Deep Learning là một hộp đen có sức mạnh dự đoán cao nhưng khả năng diễn giải tại sao nó phải như vậy là khó.
Điều này đặc biệt quan trọng khi truyền đạt những suy diễn của model cho những người cần đưa ra quyết định dựa trên chúng. Ví dụ: Các bác sĩ chẳng hạn cần phải kết hợp tất cả các loại dữ liệu khác nhau để đưa ra ra chẩn đoán chứ không chỉ đơn thuần là kết quả chuẩn đoán được đưa ra bởi model.
Mặt khác, có những trường hợp độ chính xác của mô hình không quan trọng bằng khả năng giải thích tại sao lại làm như vậy. Ví dụ: Nhà hoạch định chính sách có thể muốn biết tác động của một biến số lên tuổi thọ của con người hơn là việc dự đoán tuổi thọ.
Tóm lại, có thể Deep Learning sẽ trở thành thuật toán chủ đạo giống như SVM nhưng Deep Learning không phải là chìa khóa vạn năng. Bạn không nên “ném” bất cứ bài toán Machine Learning nào vào Deep Learning mà hãy bắt đầu bằng các thuật toán đơn giản để xem độ chính xác đã đạt yêu cầu hay chưa.
No comments:
Post a Comment