nhờ Trí tuệ nhân tạo tạo thử mạng neural, đọc file (12 người xem)

Người dùng đang xem chủ đề này

anhtuanle123

Thành viên tiêu biểu
Tham gia
8/6/09
Bài viết
435
Được thích
285
tạo thử code nhận diện !
ước mơ thời trẻ ^^
1787052034485.png1787052070783.png
 

File đính kèm

Chủ đề này hay quá bác ơi! Bác đã chạy test thử với tập dữ liệu nào chưa, tốc độ xử lý của Excel có bị lag không?

Thường thì code VBA do AI sinh ra (kiểu như ChatGPT) khá tốt về mặt logic, nhưng khi xử lý thuật toán nặng như Neural Network thì hay bị lỗi ở khâu khai báo mảng (Array) hoặc lồng quá nhiều vòng lặp. Cứ nạp dữ liệu lớn vào là Excel rất dễ bị đơ (Not Responding).

Bác cứ share nguyên đoạn code hoặc đính kèm file demo lên đây để anh em cùng chạy thử và tối ưu tốc độ xem sao nhé. Hóng kết quả từ bác!
 
mình chỉ trò chuyện với AI , rùi nó cho code chạy thôi ah, code có trong file macro đính kèm bên trên, mình sẽ vặn vẹo nó thêm, nếu có code ngon hơn sẽ share ^^
--------------------------------------------------------------
hỏi : đoạn code này có thể dùng để làm các ứng dụng như nhận diện vân tay của vài nghìn người hoặc nhận diện khuôn mặt không ?
--------------------------------------------------------------
Câu trả lời ngắn gọn là: KHÔNG, đoạn code này không thể dùng để nhận diện vân tay hay khuôn mặt cho vài nghìn người trong thực tế.

Mặc dù đoạn code của bạn chứa những "hạt nhân" toán học cơ bản nhất của trí tuệ nhân tạo (lan truyền tiến, lan truyền ngược, hàm kích hoạt), nhưng để giải quyết bài toán phức tạp như vân tay hay khuôn mặt, người ta cần những kiến trúc mạng và nền tảng hoàn toàn khác.

Dưới đây là 4 lý do cốt lõi giải thích tại sao đoạn code này không đáp ứng được:

1. Kiến trúc mạng (MLP vs. CNN)​

  • Code của bạn (MLP): Đang sử dụng kiến trúc Multi-Layer Perceptron. Nhược điểm lớn nhất của nó là "dàn phẳng" bức ảnh (biến ma trận 8x10 thành một mảng dài 80 phần tử). Việc này phá hủy hoàn toàn cấu trúc không gian 2D của hình ảnh. Hai điểm ảnh nằm cạnh nhau trên trục dọc sẽ bị đẩy ra xa nhau trong mảng 1D, khiến AI không hiểu được các đường nét, góc cạnh.
  • Thực tế: Hệ thống nhận diện khuôn mặt/vân tay bắt buộc phải dùng Mạng nơ-ron tích chập (CNN - Convolutional Neural Networks). CNN sử dụng các bộ lọc (filters) quét qua bức ảnh để nhận diện được các đặc điểm từ nhỏ (cạnh, góc, đường vân) đến lớn (mắt, mũi, vòng xoáy vân tay) mà không làm mất thông tin không gian.

2. Sự nhạy cảm với vị trí (Translation Invariance)​

  • Code của bạn: Nếu bạn vẽ chữ "A" nhưng dịch nó sang phải 1 pixel hoặc hơi nghiêng, mô hình này khả năng cao sẽ nhận diện sai hoàn toàn. Nó học vẹt vị trí pixel cố định (pixel số 15 phải là màu đen).
  • Thực tế: Khuôn mặt hay ngón tay của người dùng không bao giờ đặt ở vị trí hoàn hảo giống nhau 100% mỗi lần quét (ánh sáng khác, góc nghiêng khác, xa gần khác). Kiến trúc của bạn không có khả năng chống chịu sự thay đổi này.

3. Giới hạn phần cứng và Ngôn ngữ (Excel VBA)​

  • Sức mạnh tính toán: Nhận diện chữ 8x10 pixel cần $80 \times 64 = 5.120$ trọng số. Tuy nhiên, một ảnh vân tay hoặc khuôn mặt cơ bản nhất cũng phải đạt độ phân giải tối thiểu 112x112 pixel (12.544 đầu vào). Nếu đưa vào mạng để nhận diện vài nghìn người, số lượng trọng số sẽ lên tới hàng chục triệu.
  • Tốc độ: Chạy vài triệu phép tính nhân ma trận bằng vòng lặp For của VBA trên CPU sẽ khiến Excel "treo" vĩnh viễn. Trong thực tế, quá trình này cần được tính toán song song trên các card đồ họa (GPU) chuyên dụng thông qua C++ hoặc Python.

4. Cách thức phân loại (Classification vs. Embedding)​

  • Code của bạn: Đang dùng Softmax để phân loại trực tiếp. Tức là đầu ra có 4 lớp (A, B, D, O). Nếu có 5.000 người, bạn cần 5.000 nút đầu ra. Nếu thêm 1 người mới, bạn phải đập đi huấn luyện lại mạng từ đầu.
  • Thực tế: Các hệ thống FaceID không phân loại trực tiếp như vậy. Chúng dùng AI để nén bức ảnh khuôn mặt thành một "vector đặc trưng" (embedding) gồm ví dụ 512 con số. Khi quét mặt bạn, nó tạo ra vector này và đối chiếu với cơ sở dữ liệu xem có vector nào "gần giống" nhất (tính bằng khoảng cách toán học). Việc này cho phép thêm người mới vào hệ thống mà không cần huấn luyện lại AI.
Tóm lại: Đoạn code VBA của bạn là một tài liệu học tập xuất sắc để hiểu cách một Mạng nơ-ron hoạt động "dưới mui xe". Tuy nhiên, để làm ứng dụng thực tế về thị giác máy tính, bạn sẽ cần chuyển sang ngôn ngữ Python, sử dụng thư viện PyTorch / TensorFlow, và học về kiến trúc mạng CNN / ResNet.

--------------------------------------------------------------------
Hỏi : vậy nếu chỉ viết code VBA Excel thì mạng Newral làm được những gì ?
--------------------------------------------------------------------
Dù bị giới hạn về tốc độ tính toán, một Mạng nơ-ron (Neural Network) được viết thuần bằng VBA Excel vẫn hoàn toàn xử lý tốt các bài toán Machine Learning dạng dữ liệu bảng (Tabular Data) hoặc chuỗi thời gian đơn giản—nơi dữ liệu đầu vào là các con số, thuộc tính hoặc chỉ số định lượng thay vì hàng triệu pixel ảnh.

Dưới đây là những ứng dụng thực tế và khả thi nhất mà bạn có thể xây dựng:

1. Dự báo & Phân tích Chuỗi thời gian (Time-Series Forecasting)​

  • Dự báo Doanh thu / Cầu hàng hóa: Dự đoán doanh số bán hàng tháng tới dựa trên dữ liệu lịch sử (doanh thu các tháng trước, chi phí marketing, yếu tố mùa vụ).
  • Dự báo Tài chính & Bất động sản: Dự đoán giá nhà dựa trên diện tích, số phòng, vị trí; hoặc dự đoán chỉ số chứng khoán/tỷ giá ngắn hạn dựa trên các chỉ báo kỹ thuật.

2. Phân loại & Chẩn đoán (Classification Problems)​

  • Đánh giá Rủi ro Tín dụng (Credit Scoring): Phân loại hồ sơ vay tiền thành "An toàn" hay "Rủi ro" dựa trên thu nhập, độ tuổi, lịch sử dư nợ và số người phụ thuộc.
  • Dự đoán Tỷ lệ Rời bỏ của Khách hàng (Customer Churn): Phân loại khách hàng nào có khả năng hủy dịch vụ dựa trên tần suất sử dụng, số lần khiếu nại và số tiền chi trả.
  • Chẩn đoán Y tế cơ bản: Phân loại khả năng mắc bệnh (ví dụ: tiểu đường, tim mạch) dựa trên các chỉ số sinh hóa (huyết áp, chỉ số BMI, lượng đường trong máu).

3. Nhận dạng Mẫu đơn giản (Simple Pattern Recognition)​

  • Nhận dạng Chữ số / Ký tự viết tay cỡ nhỏ: Nhận diện chữ số từ $0$ đến $9$ hoặc ký tự đơn giản trên ma trận pixel nhỏ (như ma trận $8 \times 8$ hoặc $10 \times 10$ tương tự ví dụ của bạn).
  • Phân loại Cảm xúc Văn bản đơn giản (Sentiment Analysis): Đánh giá bình luận của khách hàng là "Tích cực" hay "Tiêu cực" dựa trên tần suất xuất hiện của các từ khóa được mã hóa thành số (Bag-of-Words).

4. Bảng điều khiển Giảng dạy & Trực quan hóa AI (Educational Dashboard)​

  • Mô phỏng Quá trình Học (Training Visualizer): Đây là điểm mạnh nhất của Excel. Bạn có thể vẽ đồ thị biểu diễn hàm mất mát (Loss Curve) giảm dần qua từng vòng lặp (Epoch), hoặc hiển thị sự thay đổi của từng trọng số (Weights) trực tiếp lên ô tính Excel theo thời gian thực để phục vụ giảng dạy và nghiên cứu toán học.

Bảng tóm tắt giới hạn năng lực của Mạng Nơ-ron trên VBA​

Loại bài toánKhả năng của VBA Neural NetworkVí dụ thực tế
Dữ liệu bảng (Numbers/Table)Rất tốt (Dưới 10.000 dòng, 20-50 thuộc tính)Dự báo doanh thu, chấm điểm tín dụng
Dữ liệu Ký tự / Ảnh nhỏKhá (Ảnh ma trận dưới $16 \times 16$ pixel)Nhận diện chữ số viết tay đơn giản
Ảnh lớn / Video (FaceID)Không thể (Do quá tải bộ nhớ & tốc độ CPU)Nhận diện khuôn mặt, vân tay thực tế
Xử lý Ngôn ngữ lớn (LLM)Không thể (Yêu cầu hàng tỷ trọng số)ChatGPT, DeepSeek
 

[Chia sẻ] "Bẻ khóa" thuật toán JPEG và kết xuất hình ảnh bằng Pure VBA 100%​

Chào mọi người, hôm nay mình muốn chia sẻ một dự án kỹ thuật mang tính thử thách cực cao: Một bộ giải mã hình ảnh JPG hoàn chỉnh (JPEG Decoder) được viết bằng 100% Pure VBA, không sử dụng bất kỳ thư viện ngoài (DLL), API Windows, hay công cụ hỗ trợ nào khác. Chỉ VBA và toán học thuần túy!

Tầm vóc của dự án​

Trong lập trình, việc gọi hàm để đọc một bức ảnh là thao tác cơ bản. Tuy nhiên, tự tay viết mã để "mổ xẻ" tệp nhị phân JPG, can thiệp vào từng bit (0 và 1) và ép Excel tự tính toán để đổ màu ra từng ô (cell) lại là một câu chuyện hoàn toàn khác. VBA vốn không được thiết kế để xử lý luồng nhị phân tốc độ cao hay giải các ma trận lượng giác phức tạp.

Dự án này là minh chứng cho việc khi chúng ta thấu hiểu thuật toán cốt lõi, giới hạn của ngôn ngữ lập trình chỉ là rào cản mỏng manh. Nó biến Excel từ một công cụ bảng tính trở thành một lõi xử lý đồ họa (GPU) sơ khai.

Lịch sử định dạng JPEG​

Ra đời vào năm 1992 bởi Joint Photographic Experts Group, JPEG đã tạo ra một cuộc cách mạng định hình lại toàn bộ Internet. Thay vì lưu trữ cồng kềnh như định dạng BMP, JPEG sử dụng cơ chế nén "có tổn hao" (lossy compression) dựa trên sự đánh lừa thị giác của mắt người. Nhờ khả năng ép dung lượng xuống mức tối thiểu mà vẫn giữ được độ chân thực, JPEG đã giữ vững ngôi vương là chuẩn hình ảnh phổ biến nhất thế giới suốt hơn 3 thập kỷ.

Giải phẫu thuật toán cốt lõi​

Để biến hàng triệu ký tự nhị phân vô nghĩa thành một bức ảnh hiển thị hoàn hảo trên Excel, đoạn code này phải tái hiện lại 4 thuật toán kinh điển nhất của khoa học máy tính:

  • Không gian màu YCbCr: Thay vì lưu màu hệ RGB (Đỏ, Xanh lá, Xanh dương), JPG lưu dữ liệu dưới dạng Độ sáng (Luma) và Độ lệch màu (Chroma) để nén các chi tiết màu sắc mà mắt người kém nhạy cảm.
  • Biến đổi Cosin rời rạc ngược (IDCT): Đây là "trái tim" của JPEG. Thuật toán này sử dụng các phép toán lượng giác để chuyển đổi dữ liệu từ không gian tần số (bước sóng ánh sáng) trở lại thành ma trận điểm ảnh 8x8.
  • Giải lượng tử hóa (Dequantization): Sử dụng các bảng lượng tử (Quantization Tables) để khôi phục lại các hệ số đã được làm tròn trong quá trình nén.
  • Giải mã Huffman (Huffman Decoding): Một thuật toán nén không tổn hao vô cùng chặt chẽ. Bộ đọc phải xử lý từng bit đơn lẻ đi qua một cây nhị phân phức tạp; chỉ cần lệch 1 bit hoặc bỏ lỡ một cờ đồng bộ (Restart Marker), toàn bộ bức ảnh sẽ bị vỡ vụn.
Hy vọng đoạn code này sẽ giúp các bạn yêu thích lập trình có một tài liệu tham khảo thực tế về cách dữ liệu số hoạt động ở tầng sâu nhất.

mình copy paste mà đọc lại còn không hiểu :cool::cool::cool::cool::cool::cool::cool:

1789474409291.png
 

File đính kèm

Lần chỉnh sửa cuối:

Bài viết mới nhất

Back
Top Bottom