Học sâu là một lĩnh vực con đang phát triển của học máy. Học sâu liên quan đến việc phân tích đầu vào theo cách từng lớp, trong đó mỗi lớp dần dần trích xuất thông tin cấp cao hơn về đầu vào.
Ta hãy xem một kịch bản đơn giản về phân tích một hình ảnh. Giả sử rằng hình ảnh đầu vào của bạn được chia thành một lưới pixel hình chữ nhật. Bây giờ, lớp đầu tiên tóm tắt các pixel. Lớp thứ hai hiểu các cạnh trong hình ảnh. Lớp tiếp theo xây dựng các nút từ các cạnh. Sau đó, tiếp theo sẽ tìm các nhánh từ các nút. Cuối cùng, lớp đầu ra sẽ phát hiện đối tượng đầy đủ. Ở đây, quá trình trích xuất đặc trưng đi từ đầu ra của một lớp thành đầu vào của lớp tiếp theo tiếp theo.
Bằng cách sử dụng phương pháp này, ta có thể xử lý một lượng lớn các tính năng, điều này làm cho học sâu trở thành một công cụ rất mạnh mẽ. Các thuật toán học sâu cũng hữu ích cho việc phân tích dữ liệu phi cấu trúc. Chúng ta hãy cùng tìm hiểu những kiến thức cơ bản về học sâu trong bài này.
1. Artificial Neural Networks
Cách tiếp cận phổ biến nhất và chính của học sâu là sử dụng “Mạng nơ-ron nhân tạo” (ANN). Chúng được lấy cảm hứng từ mô hình não người, là cơ quan phức tạp nhất của cơ thể chúng ta. Bộ não con người được tạo thành từ hơn 90 tỷ tế bào nhỏ gọi là “Tế bào thần kinh”. Các tế bào thần kinh được kết nối với nhau thông qua sợi thần kinh được gọi là “sợi trục” và “đuôi gai”. Vai trò chính của sợi trục là truyền thông tin từ tế bào thần kinh này sang tế bào thần kinh khác mà nó được kết nối.
Tương tự, vai trò chính của đuôi gai là nhận thông tin được truyền bởi các sợi trục của một tế bào thần kinh khác mà nó được kết nối. Mỗi nơ-ron xử lý một thông tin nhỏ rồi chuyển kết quả cho một nơ-ron khác và quá trình này tiếp tục. Đây là phương pháp cơ bản được bộ não con người sử dụng để xử lý lượng lớn thông tin như lời nói, hình ảnh, v.v. và trích xuất thông tin hữu ích từ đó.
Dựa trên mô hình này, Mạng Nơ-ron Nhân tạo (ANN) đầu tiên được phát minh bởi nhà tâm lý học Frank Rosenblatt vào năm 1958. ANN được tạo thành từ nhiều nút tương tự như các nơ-ron. Các nút được kết nối chặt chẽ với nhau và được tổ chức thành các lớp ẩn khác nhau. Lớp đầu vào nhận dữ liệu đầu vào và dữ liệu đi qua một hoặc nhiều lớp ẩn tuần tự và cuối cùng là lớp đầu ra dự đoán điều gì đó hữu ích về dữ liệu đầu vào. Ví dụ: đầu vào có thể là một hình ảnh và đầu ra có thể là thứ được xác định trong hình ảnh, chẳng hạn như “Cat”.
Một neuron đơn lẻ (được gọi là perceptron trong ANN) có thể được biểu diễn như sau:
Ở đây :
- Nhiều đầu vào cùng với trọng lượng đại diện cho đuôi gai.
- Tổng đầu vào cùng với chức năng kích hoạt đại diện cho các nơ-ron. Tổng thực sự có nghĩa là giá trị được tính toán của tất cả các đầu vào và hàm kích hoạt đại diện cho một hàm, hàm này sửa đổi giá trị Tổng thành 0, 1 hoặc 0 thành 1.
- Đầu ra thực tế đại diện cho sợi trục và đầu ra sẽ được nhận bởi nơron ở lớp tiếp theo.
Ta sẽ xem qua các mạng nơ ron nhân tạo khác nhau dưới đây
2. Perceptron nhiều lớp
Perceptron nhiều lớp là dạng ANN đơn giản nhất. Nó bao gồm một lớp đầu vào duy nhất, một hoặc nhiều lớp ẩn và cuối cùng là lớp đầu ra. Một lớp bao gồm một tập hợp các perceptron. Lớp đầu vào về cơ bản là một hoặc nhiều tính năng của dữ liệu đầu vào. Mỗi lớp ẩn bao gồm một hoặc nhiều nơ-ron và xử lý một số khía cạnh nhất định của tính năng và gửi thông tin đã xử lý vào lớp ẩn tiếp theo. Quá trình lớp đầu ra nhận dữ liệu từ lớp ẩn cuối cùng và cuối cùng xuất ra kết quả.
3. Convolutional Neural Network (CNN)
Convolutional neural network là một trong những ANN phổ biến nhất. Nó được sử dụng rộng rãi trong các lĩnh vực nhận dạng hình ảnh và video. Nó dựa trên khái niệm tích chập, một khái niệm toán học. Nó gần giống với perceptron nhiều lớp ngoại trừ nó chứa một loạt lớp convolution và lớp pooling trước lớp nơron hidden được kết nối đầy đủ. Nó có ba lớp quan trọng –
- Convolution layer − khối xây dựng chính và thực hiện các tác vụ tính toán dựa trên hàm tích chập.
- Pooling layer − sắp xếp bên cạnh lớp chập và được sử dụng để giảm kích thước đầu vào bằng cách loại bỏ thông tin không cần thiết để việc tính toán có thể được thực hiện nhanh hơn.
- Fully connected layer − sắp xếp bên cạnh lớp tích hợp và chuỗi tích hợp và phân loại đầu vào thành nhiều loại khác nhau.
Một CNN đơn giản có thể được trình bày như sau:
Ở đây :
- 2 loạt của lớp Convolution và lớp pooling được sử dụng và nó nhận và xử lý đầu vào (ví dụ: hình ảnh).
- Một lớp được kết nối đầy đủ duy nhất được sử dụng và nó được sử dụng để xuất dữ liệu (ví dụ: phân loại hình ảnh)
4. Recurrent Neural Network (RNN)
Mạng thần kinh tái tạo (RNN) rất hữu ích để giải quyết lỗ hổng trong các mô hình ANN khác. Chà, Hầu hết ANN không nhớ các bước từ các tình huống trước đó và học cách đưa ra quyết định dựa trên ngữ cảnh trong quá trình đào tạo. Trong khi đó, RNN lưu trữ thông tin trong quá khứ và tất cả các quyết định của nó được thực hiện từ những gì nó đã học được từ quá khứ.
Cách tiếp cận này chủ yếu hữu ích trong phân loại ảnh. Đôi khi, ta có thể cần nhìn vào tương lai để sửa chữa quá khứ. Trong trường hợp này, RNN hai chiều rất hữu ích để học hỏi từ quá khứ và dự đoán tương lai. Ví dụ: chúng tôi có các mẫu viết tay trong nhiều đầu vào. Giả sử, chúng ta có sự nhầm lẫn trong một đầu vào thì chúng ta cần kiểm tra lại các đầu vào khác để nhận ra bối cảnh chính xác sẽ đưa ra quyết định từ quá khứ.
5. Quy trình làm việc của ANN
Trước tiên, chúng ta hãy hiểu các giai đoạn khác nhau của học sâu và sau đó, tìm hiểu cách Keras hỗ trợ trong quá trình học sâu.
Thu thập dữ liệu cần thiết
Học sâu đòi hỏi nhiều dữ liệu đầu vào để học thành công và dự đoán kết quả. Vì vậy, trước tiên hãy thu thập càng nhiều dữ liệu càng tốt.
Phân tích dữ liệu
Phân tích dữ liệu và hiểu rõ về dữ liệu. Cần hiểu rõ hơn về dữ liệu để chọn thuật toán ANN chính xác.
Chọn một thuật toán (mô hình)
Chọn một thuật toán phù hợp nhất với loại quy trình học tập (ví dụ: phân loại hình ảnh, xử lý văn bản, v.v.) và dữ liệu đầu vào có sẵn. Thuật toán được đại diện bởi Mô hình trong Keras. Thuật toán bao gồm một hoặc nhiều lớp. Mỗi lớp trong ANN có thể được biểu diễn bằng Lớp Keras trong Keras.
- Chuẩn bị dữ liệu – Xử lý, lọc và chỉ chọn thông tin cần thiết từ dữ liệu.
- Tách dữ liệu – Tách dữ liệu thành tập dữ liệu huấn luyện và kiểm tra. Dữ liệu thử nghiệm sẽ được sử dụng để đánh giá dự đoán của thuật toán / Mô hình (khi máy học) và kiểm tra chéo hiệu quả của quá trình học.
- Biên dịch mô hình – Biên dịch thuật toán / mô hình để nó có thể được sử dụng thêm để học bằng cách đào tạo và cuối cùng là dự đoán. Bước này yêu cầu chọn loss function và Trình tối ưu hóa. loss function và Trình tối ưu hóa được sử dụng trong giai đoạn học để tìm ra lỗi (độ lệch so với kết quả thực tế) và thực hiện tối ưu hóa để lỗi sẽ được giảm thiểu.
- Fit the model − Quá trình học tập thực tế sẽ được thực hiện trong giai đoạn này bằng cách sử dụng tập dữ liệu training.
- Dự đoán kết quả cho giá trị không xác định – Dự đoán đầu ra cho dữ liệu đầu vào không xác định (ngoài dữ liệu đào tạo và kiểm tra hiện có)
- Đánh giá mô hình – Đánh giá mô hình bằng cách dự đoán đầu ra cho dữ liệu thử nghiệm và so sánh chéo dự đoán với kết quả thực tế của dữ liệu thử nghiệm.
- Freeze, Modify hoặc lựa chọn thuật toán mới – Kiểm tra xem việc đánh giá mô hình có thành công hay không. Nếu có, hãy lưu thuật toán cho mục đích dự đoán trong tương lai. Nếu không, sau đó sửa đổi hoặc chọn thuật toán / mô hình mới và cuối cùng, một lần nữa đào tạo, dự đoán và đánh giá mô hình. Lặp lại quy trình cho đến khi tìm được thuật toán (mô hình) tốt nhất.