Tôi đã nghiên cứu AI như thế nào trong 2 tháng qua?

2822

Trước tình cảnh mọi thứ đang thay đổi khá nhiều thì vai trò hiện tại của full stack developer thôi là chưa đủ. Trong 2 năm tới, full stack sẽ không còn là full stack nếu không có các kĩ năng AI.

Đây là thời điểm để hành động – trau dồi các kĩ năng của developer, cải thiện mindset của 1 người làm sản phẩm và khả năng đàm phán của 1 doanh nhân để chuyển dần định hướng sang vào data.

Spiros Margaris –  1 nhà đầu tư mạo hiểm, 1 leader có hiểu biết sâu sắc nổi tiếng về AI & Fintech đã từng nói với tôi:

Nếu startups và các công ty chỉ phụ thuộc vào các thuật toán AI & Machine learning Tân tiến để cạnh tranh với nhau sẽ không đủ. Ai không phải là lợi thế cạnh tranh mà là điều bắt buộc. Bạn đã từng nghe ai nói đến việc sử dụng điện để làm nhân tố cạnh tranh chưa?

Xây dựng neural network đầu tiên của mình

Photo by — Unsplash

Khuynh hướng nghiên cứu của tôi là thực hành nên tôi đã nghĩ là tại sao không thực hiện mạng neural của riêng mình?

Tôi không nhảy ngay vào neural nets vì có những cách học hay hơn mà cố gắng làm quen với những từ vựng trong domain.

Bài tập đầu tiên không phải là học, mà là làm quen

Với background thuần về Javascript & Nodejs, tôi đã không muốn chuyển đổi các stacks. Vì vậy, tôi đã tìm module neural net đơn giản tên là nn và sử dụng nó để implement cổng AND với input giả. Từ tutorial này, tôi đã chọn vấn đề mà với 3 input bất kì X,Y & Z thì output sẽ là X AND Y.

var nn = require('nn')
var opts = {
    layers: [ 4 ],
    iterations: 300000,
    errorThresh: 0.0000005,
    activation: 'logistic',
    learningRate: 0.4,
    momentum: 0.5,
    log: 100   
}
var net = nn(opts)
net.train([
    { input: [ 0,0,1 ], output: [ 0 ] },
    { input: [ 0,1,1 ], output: [ 0 ] },            
    { input: [ 1,0,1 ], output: [ 0 ] },
    { input: [ 0,1,0 ], output: [ 0 ] },
    { input: [ 1,0,0 ], output: [ 0 ] },
    { input: [ 1,1,1 ], output: [ 1 ] },
    { input: [ 0,0,0 ], output: [ 0 ] }
    ])
// send it a new input to see its trained output
var output = net.send([ 1,1,0]) 
console.log(output); //0.9971279763719718

Theo ý kiến cá nhân của tôi, đây chính là bước lập trình mà tôi tự tin thực hiên nhất. Khi output flash 0.9971, tôi đã nhận ra network đã biết được cách thực hiện operation AND và tự bỏ qua input bổ sung.

Đây cũng là ý chính của Machine Learning. Bạn đưa cho chương trình máy tính set data và nó điều chỉnh các thông số nội bộ để có khả năng trả lời các câu hỏi dựa trên data mới từ những gì nó quan sát được trong data gốc, với ít error hơn.

Method này cũng được biết đến như gradient descent.

Photo by — Sebastian Raschka

Rèn luyện trí óc sẵn sàng cho Artificial Intelligence

Photo courtesy — Unsplash

Khi đã có được sự tự tin bằng việc tự tạo chương trình AI đầu tiên, tôi muốn biết trong vai trò Developer thì bản thân có thể làm được gì nhiều hơn nhờ Machine Learning.

  • Tôi đã giải quyết vài vấn đề supervised learning như regression classification.
  • Tôi đã sử dụng data set rất giới hạn để thử dự đoán đội nào sẽ chiến thắng 1 trận đấu IPL cho trước thông qua multivariate linear regression. (Các dự đoán đều sai nhưng khá là thú vị)
  • Tôi đã chơi với các bản demos trên Google Machine Learning cloud để xem thử những gì mà AI có thể làm hôm nay (đủ để xem những gì mà Google đang trong vai trò 1 sản phẩm SaaS)
  • Tôi đã bất ngờ biết được AI Playbook, 1 resource cực hay & tiện ích của Andreessen-Horowitz dành cho các developers & các nhà kinh doanh.
  • Tôi đã bắt đầu xem kênh của Siraj Rawal trên Youtube với nội dung xoay quanh Deep Learning và Machine Learning
  • Tôi đã đọc bài viết HackerNoon cực hay về các nhà sản xuất kiêm biên kịch của Silicon Valley đã xây dựng ứng dụng Not Hotdog ra sao. Đây là 1 trong những ví dụ dễ tiếp cận, dễ hiểu nhất dành cho chúng ta.
  • Tôi cũng đã đọc các bài blog của Andrej Karpathy, Director of AI của Tesla.
  • Tôi đã bắt đầu implement vài tutorials về Deep Learning theo đúng từng từ một (copy và paste), cố gắng train model & chạy code trên local machine của mình. Hầu hết thời gian, nó đều không ổn vì hầu như model nào cũng tốn thời gian training cao và tôi lại không có GPU.

Dần dần, tôi chuyển từ các công cụ của Javascript sang Python, và cài đặt Tensorflow trên windows machine của mình.

Toàn bộ quá trình này tập trung vào tiêu thụ các nội dung và xây dựng các bài tham khảo 1 cách thụ động trong tâm trí để sử dụng khi mình gặp phải vấn đề thực sự với khách hàng.

Như Steve Jobs đã từng nói, bạn chỉ có thể liên kết các Điểm quan trọng trong cuộc đời khi nhìn lại quá khứ

Theo kịp con tàu chatbot

Photo by — Unsplash

Là fan ruột của movie Her, tôi đã rất muốn xây dựng chatbots của riêng mình và thực sự đã làm được 1 chatbot bằng Tensorflow trong chưa đến 2 giờ. Tôi đã phác họa quá trình này và các yêu cầu business liên quan ở 1 trong số bài báo của mình

Thật may là bài viết này đã nhanh chóng được lan truyền trên TechInAsiaCodeMentor, và KDNuggets. Đây thực sự là khoảnh khắc tuyệt vời khi mà tôi chỉ mới bắt đầu viết Tech blog, cũng là cột mốc quan trọng trong hành trình nghiên cứu AI.

Từ đây tôi cũng quen được rất nhiều bạn trên Twitter & LinkedIn, cùng đàm luận về lập trình AI cả về chiều dài lẫn chiều sâu cũng như tìm kiếm sự trợ giúp khi gặp khúc mắc. Tôi thậm chí còn nhận được vài lời đề nghị làm các dự án tư vấn và trên tất cả, các developers & AI beginners trẻ bắt đầu hỏi tôi cách bắt đầu với AI.

Đây cũng là lý do tại sao tôi lại viết bài này, để giúp mọi người làm theo và có thể tự mình bắt đầu hành trình chinh phục AI.

BẮT ĐẦU LÀ 1 trong những phần thách thức nhất trong bất kì hành trình nào

Salt & pepper

Photo by — Unsplash

Việc học AI thật không dễ dàng. Khi gặp khó khăn với Javascript, tôi đã dành nguyên 1 đêm để nhảy sang học Python và biết được cách để code bằng Python. Tôi đã từng cảm thấy rất bực mình khi các models của mình không train được trên i7 machine hay thậm chí là sau nhiều giờ training, chúng vẫn trả lại những kết quả rác như khả năng chiến thắng 50-50 của 1 team trong trận Cricket. Học AI không hề giống học web framework.

Đó là 1 skill đòi hỏi khả năng nhận thức những gì Đang diễn ra ở cấp độ vi mô của các tính toán & tìm ra được đâu là thứ phải chịu trách nhiệm cho output – code hoặc data của bạn

AI không chỉ là 1 chủ ngữ, mà là umbrella term (để chỉ 1 từ hoặc 1 câu bao quát hết các concepts thuộc 1 lĩnh vực thông dụng) được sử dụng cho tất cả mọi thứ, từ các vấn đề liên quan đến hồi quy đơn giản đến các killer robots có thể sẽ hủy hoại chúng ta vào 1 ngày nào đó. Cũng giống như mọi nguyên tắc mà chúng ta phải tuân theo, bạn sẽ muốn cherry pick những thứ tương tự như vậy trong AI, bạn sẽ muốn thực sự giỏi về Computer vision hoặc Xử lý ngôn ngữ tự nhiên (Natural Language Processing) hoặc cả những việc đại loại như ngăn cản Chúa trời, chiếm lĩnh thế giới.

Trong buổi nói chuyện với Gaurav Sharma đến từ Atlantis Capital, doanh nghiệp nổi tiếng hàng đầu trong lĩnh vực AI, Fintech & Crypto, anh đã tiết lộ với tôi rằng:

Trong kỉ nguyên artificial intelligence, “trở nên Thông minh” đồng nghĩa với cái gì đó hoàn toàn khác biệt. chúng ta cần phải thể hiện khả năng phê bình, sáng tạo và suy nghĩ ở mức độ cao cấp và cả những công việc cao cấp đòi hỏi sự gắn kết cao về cảm xúc

Bạn sẽ phải kinh ngạc vì cách các máy tính bất chợt tự mình học được mọi thứ. Sự kiên nhẫn và thái độ ngạc nhiên sẽ là 2 nguyên tắc chìa khóa chính mà bạn nên nắm bắt.

Đây là 1 hành trình lớn, rất lớn. Tốn thời gian, mệt mỏi và dễ gây bực dọc.

nhưng điều tuyệt vời chính là, cũng giống như mọi hành trình khác trên thế giới, hành trình này cũng sẽ bắt đầu từ bước đi nhỏ đầu tiên

Nguồn: TopDev via hackernoon.com