em vẫn ko thể hiểu, viết code thế éo nào để cho máy móc có thể "tự học" (machine learning)

AI vốn là quá trình phát triển lâu dài. nên vài dòng if else ko thể nói hết bản chất đâu fen.
nhưng giải thích thì đơn giản là gồm:
1. thuật toán: cái này giúp để máy xữ lí thông tin với lượng cực lớn để tìm ra kết quả nhanh hơn.
mà cái này thì rất nhiều.
tiếp cận dễ thì mấy câu if else for while các kiểu
khó hơn thì giải thuật rồi tìm kiếm nhị phân ma trận
nói chung cái này cả triệu người đã viết và tối ưu.
Mà cái thuật toán này càng tối ưu thì AI sẽ tìm ra kết quả càng nhanh
2. Big data: Lượng data mà con người thu thập để con AI tìm ra kết quả cái này thì nhiều bác giải thích phía trên rồi.

Thực ra hướng tiếp cận AI ở việt nam là chủ yếu nghiên cứu các thư viện bọn trung nhật nga mĩ viết trước rồi ứng dụng .
Chứ thực ra viết hay tối ưu thuật toán hay tìm thêm gì hay ho chưa đến đâu
 
Đến bây giờ vẫn k hiểu nổi bằng cách nào mà chỉ với 2 số 0 1 mà máy tính có thể làm được tất cả mọi việc.
Bộ óc con người thật vĩ đại. :beauty:

via theNEXTvoz for iPhone
Hiểu đơn giản nhất thì 0 1 là "đúng" và "sai" (ngoài ra còn có x với z)
Máy tính dùng tỷ tỷ phép if else từ 0 và 1 đó thì làm được hết.
 
If else đúng mẹ nó rồi còn gì.
Dùng từ “ tự học “ nó cao siêu quá. Dùng từ “ cập nhật” thì đúng hơn
 
hiểu đơn giả như sau nhé:
  • input -> qua 1 phép biển đổi có tham số -> output là 1 trong các quyết định được định nghĩa sẵn
  • Phép biến đổi đó có thể dẫn đến quyết định sai.
  • Cần 1 lượng data nhất định để tối ưu lại tham số của phép biến đổi đó, để lần sau nó quyết định đúng
 
Đơn giản vầy thôi fen. Ví dụ ngày xưa đi học cô giáo dạy phương trình y = ax +b. Có a và b là hằng số nào đó. Thế x vào phương trình, ta sẽ tính ra được kết quả y.
Học máy cũng tương tự, đề bài sẽ cho ta một bộ dữ liệu "y tương ứng với x", máy sẽ tính ngược ra hằng số a và b nhờ phương pháp tối ưu toán học, kiểu như tính năng solver của Excel vậy đó.
Khi đã có hằng số a, b, thông số đầu vào x, thì ta sẽ tính ra được y.

Những bài toán thực tế không chỉ có a, b mà hẳn c,d,e,f,........ Cũng như không chỉ có x mà còn có x^2,x^3,x^4,...
 
Screen Shot 2020-11-04 at 09.51.17.jpg


Muốn hiểu cách AI học, thì phải hiểu về Neural network.

Xếp theo lớp thì nó là như thế này:

Russian%20Nesting%20Dolls_v2.jpg


Trí tuệ nhân tạo chứa nhiều thứ, nhưng thành phần "cách mạng" và quan trọng nhất của nó là Machine Learning (khả năng để "máy" nó tự học)
Machine learning thì có nhiều loại, trong đó Deep Learning - học theo chiều sâu - là hướng đi tươi sáng nhất hiện nay (mấy trò như deekfake cũng là thành qủa của deep learning)
Trong Deep learning, thì nó học bằng phương pháp neural network (nhưng neural network không phải là cách duy nhất nhé)

Quay lại tấm hình Neural network ở trên, nó sẽ có 3 thành phần chính:
  • Input layer: đầu vào
  • Hidden layers (lưu ý chữ S, có rất nhiều lớp ở đây, không phải chỉ 1)
  • Output: kết quả

Cấu trúc này có khái niệm hơi giống, nhưng KHÔNG PHẢI là if else, mà nó là hàm số.

Số lượng node ở Input layer và số lượng Hidden layers sẽ quyết định độ "thông minh", "chi tiết", cũng như độ phức tạp của mỗi neural network.

Bất cứ 1 dữ liệu nào cũng sẽ được phân tích ra các loại thông số để đưa vô từng node của Input. Mỗi node tương ứng ở Input sẽ "sáng lên"
Dựa trên số lượng node của input, mà ở layer tiếp theo các node tương ứng sẽ "sáng lên"
Dựa vào số lượng node sáng lên của layer trước, mà layer sau lại có các node tương ứng "sáng lên" tương đương
Và liên tục tới khi tới lớp output cuối cùng, node nào sáng lên tương ứng thì nó sẽ là KẾT LUẬN.

Do đó, các hệ thống deep learning luôn cần 1 quá trình training với dữ liệu khổng lồ, để xác nhận trước các loại khả năng ( lớp input có 3 node sáng, thì lớp tiếp theo có mấy node, là node nào sáng, v.v...), đây là quá trình "học"

Ví dụ AI chơi Dota, xác nhận cho nó output là phải "thắng", thì nó sẽ biết cần đi qua các node nào để tới kết quả thắng đó, và khi tình huống xung quanh thay đổi nó sẽ biết với tình hình hiện tại, cần phải bổ sung các "node" nào (tức là các hành động hay điều kiện nào - ví dụ phải ăn được 2 roshan, hoặc phải có K/D 10/2) để có thể thắng .
Tương ứng nếu yêu cầu nó phải THUA, nó cũng sẽ có danh sách các điều kiện cần khoả lấp để đảm bảo thua, thiếu điều kiện nào thì cần đi bổ sung tương ứng.

Anh em đã nắm được vấn đề chưa? Có gì cứ hỏi tiếp.

cnn_vis.jpg


mnist_1layer.png


Ví dụ đơn giản với trường hợp không có Hidden layers, mỗi pixel ĐEN hoặc TRẮNG tương ứng sẽ ra 1 cái Output từ 0-9. Với số lượng training đủ lớn, thì nó sẽ biết tấm hình với số lượng pixel cố định ở trên là số gì, cho dù là viết tay.

Sau đó với bất cứ tấm hình viết số nào, cũng có thể resize nó về 1 tấm hình 28x28 pixel, biến thành đen trắng, rồi đưa vô cái neural network này, nó sẽ biết là số gì.
 
Last edited:
Back
Top