Keras - Tổng quan về Học sâu
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 bao gồm 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.
Chúng ta hãy xem một kịch bản đơn giản là 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, chúng tôi 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 chương này.
Mạng lưới thần kinh nhân tạo
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 thông tin khổng lồ như giọng 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 thần kinh 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ư tế bào thần kinh. 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. Sum 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, điều này sửa đổi Sum giá trị 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.
Hãy để chúng tôi hiểu các loại mạng nơ-ron nhân tạo khác nhau trong phần này.
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ả.
Mạng thần kinh hợp hiến (CNN)
Mạng nơ-ron chuyển đổi 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 chập và lớp gộp trước lớp nơron ẩn được kết nối đầy đủ. Nó có ba lớp quan trọng -
Convolution layer - Nó là 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 - Nó được sắp xếp bên cạnh lớp tích 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 - Nó được sắp xếp bên cạnh hàng loạt lớp tích chập và lớp gộ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 dãy Convolution và lớp gộp được sử dụng và nó nhận và xử lý đầu vào (ví dụ như 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)
Mạng thần kinh tái diễn (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. 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 khóa đà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, chúng 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ứ.
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 giúp đỡ 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 và dự đoán kết quả thành công. 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ởiModelở 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ằngKeras Layer ở Keras.
Prepare data - Xử lý, lọc và chỉ chọn thông tin cần thiết từ dữ liệu.
Split data- Tách dữ liệu thành tập dữ liệu huấn luyện và kiểm tra. Dữ liệu kiểm tra 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.
Compile the model- Biên dịch thuật toán / mô hình để có thể sử dụng nó để học thêm 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úng tôi chọn chức năng mất mát và Trình tối ưu hóa. Chức năng mất mát và Trình tối ưu hóa được sử dụng trong giai đoạn học tập để tìm 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 đào tạo.
Predict result for unknown value - Dự đoán đầu ra cho dữ liệu đầu vào chưa biết (ngoài dữ liệu đào tạo và kiểm tra hiện có)
Evaluate model - Đá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 or choose new algorithm- Kiểm tra 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.
Các bước trên có thể được trình bày bằng biểu đồ bên dưới: