Neural Networks and Deep Learning - Part 1: The basic of Neural Networks

Introduction

Neural Networks lấy cảm hứng từ tập hợp các dây thần kinh kết nối với nhau trong sinh học. Trong deep learning, Neural networks để chỉ mạng neural nhân tạo, cấu thành từ các lớp neural, cho phép máy tính có thể học từ dữ liệu quan sát.

Deep learning được xây dựng trên cơ sở một mạng lưới các neural nhân tạo, tổ chức thành các lớp (layer). Neural networks và deep learning hiện cung cấp giải pháp tốt cho nhiều vấn đề trong xử lý ảnh, xử lý tiếng nói và xử lý ngôn ngữ tự nhiên.

Trong series bài viết này, tôi sẽ hướng dẫn các bạn sử dụng Neural networks trong việc nhận diện chữ viết tay. Đó là một phần trong lĩnh vực xử lý ảnh, kết hợp xử lý ngôn ngữ tự nhiên.

The basic of Neural Networks

Mạng neural nhân tạo (Artificial Neural Networks - ANNs) được tổ chức thành từng lớp (layer) mỗi lớp lại được tạo thành từ các nodes có chứa một hàm kích hoạt (activate function) và liên kết có trọng số với nhau. ANNs tạo nên một hệ thống xử lý thông tin mô phỏng hệ thống neural trong bộ não con người

Việc xử lý thông tin tại mỗi neural gồm 2 phần: xử lý tín hiệu vào (tại input layer) và đưa tín hiệu ra (output layer). Hai lớp này tương tác với nhau thông qua một hoặc nhiều lớp ẩn (hidden layers).

neural.png

Các phần tử trong các lớp khác nhau đều được liên kết có trọng số. Giá trị của các trọng số này có thể hiệu chỉnh bởi các quy tắc học (learning rules) thông qua các giá trị đầu vào mà nó sử dụng. Việc một ANNs có thể học từ các dữ liệu mẫu cũng tương tự việc một đứa trẻ có thể phân biệt được hoa hồng thông qua các hình ảnh ví dụ về loài hoa hồng vậy.

Several Strategies for Learning

ANNs được huấn luyện theo ba kỹ thuật cơ bản đó là: học có giám sát (Supervised learning) và học không giám sát (Unsupervised learning) và học tăng cường (Reinforcement Learning )

Học có giám sát (Supervised learning)

Một thành phần quan trọng trong phương pháp này đó là người thầy với kiến thức vô cùng phong phú thể hiện qua tập dữ liệu training. ANNs sẽ phải tìm cách thay đổi các tham số (parameter) và các ngưỡng (threshold) để ánh xạ các đầu vào thành các đầu ra mong muốn.

ví dụ: trong nhận dạng khuôn mặt. Người thầy sẽ cung cấp cho hệ thống tập hợp các loại khuôn mặt và tên gawssn cho từng khuôn mặt. Các mạng neural sẽ phải dự đoán sau đó so sánh với kết quả đúng mà người thầy cung cấp. Từ đó, hệ thống neural sẽ phaỉ điều chỉnh các sai sót của mình để những lần sau đó có thể đưa ra các câu trả lời chính xác hơn.

Học không giám sát (Unsupervised learning)

Khác biệt với học có giám sát ở chỗ là đầu ra đúng tương ứng cho mỗi đầu vào là không biết trước. Trong học không có giám sát, một tập dữ liệu đầu vào được thu thập. Nó thường đối xử với các đối tượng đầu vào như là một tập các biến ngẫu nhiên. Sau đó, một mô hình mật độ kết hợp sẽ được xây dựng cho tập dữ liệu đó.

Hãy tưởng tượng tìm kiếm một mô hình ẩn trong một tập dữ liệu.Một ứng dụng của việc này là phân cụm (clustering), nghĩa là chia một tập các phần tử thành các nhóm theo một số mô hình không rõ.

Học tăng cường (Reinforcement Learning)

Chiến lược cây dựng của phương pháp này thông qua nwhunxg quan sát. Bạn có thể tưởng tượng một con chuột nhỏ chạy trong một mê cung. Nếu nỏ rẽ trai, nó sẽ nhận được một miếng pho mát, nhưng nếu nó rẽ phải, ở đó có một chiếc bẫy chuột (yaoming). Theo thời gian, con chuột sẽ học được rằng nó cần phải rẽ trái. Mạng nerural của nó sẽ phải quan sát môi trường xung quanh, thu thập thông tin và đưa ra các quyết định rẽ trái học rễ phải. Nếu những quan sát của nó không tốt, mạng neural sẽ phaỉ điều chỉnh các trọng số của nó để đưa ra các quyết định khác trong thời gian tới. Phương pháp học tăng cường thường phổ biến trong các robot.

Applications

mạng nơron nhân tạo đã được sử dụng để giải quyết nhiều bài toán thuộc nhiều lĩnh vực của các ngành khác nhau. Các nhóm ứng dụng mà mạng nơ-ron nhân tạo đã được áp dụng rất có hiệu quả là:

  • Bài toán phân lớp (classification): Phân loại các đối tượng quan thành thành các nhóm. Ví dụ: phân loại chữ viết, nhận diện hình ảnh ...
  • Bài toán dự đoán (preditive): Mạng nơ-ron nhân tạo đã được ứng dụng thành công trong việc xây dựng các mô hình dự báo sử dụng tập dữ liệu trong quá khứ để dự đoán số liệu trong tương lai. Ví dụ: dữ báo thiên tai, dự báo chứng khoán ...
  • Bài toán điều khiển và tối ưu hoá: Nhờ khả năng học và xấp xỉ hàm mà mạng nơ-ron nhân tạo đã được sử dụng trong nhiều hệ thống điều khiển tự động cũng như góp phần giải quyết những bài toán tối ưu trong thực tế.

Trên đây tôi đã sơ lược cho các bạn một số thông tin cơ bản về mạng neural nhân tạo (ANNs) ở các bài viết tiếp theo, tôi sẽ đi vào chi tiếp các phương pháp được sử dụng. Từ đó xây dựng hệ thống nhận dạng chữ viết tay. Cám ơn các bạn đã theo dõi

references

[1] Using neural nets to recognize handwritten digits http://neuralnetworksanddeeplearning.com/

[2] A basic Introduction to Neural Networks http://pages.cs.wisc.edu/~bolo/shipyard/neural/local.html

[3] The Nature of Code http://natureofcode.com/book/chapter-10-neural-networks/

[4] ỨNG DỤNG MẠNG NEURAL TRONG NHẬN DẠNG KÝ TỰ QUANG HỌC

[5] NGHIÊN CỨU ỨNG DỤNG MẠNG NƠ RON THẦN KINH VÀO DỰ BÁO LŨ CÁC SÔNG Ở TỈNH BÌNH ĐỊNH VÀ QUẢNG TRỊ