Mạng thần kinh sâu
Mạng nơron sâu (DNN) là một ANN có nhiều lớp ẩn giữa các lớp đầu vào và đầu ra. Tương tự như ANN nông, DNN có thể mô hình hóa các mối quan hệ phi tuyến tính phức tạp.
Mục đích chính của mạng nơ-ron là nhận một tập hợp các đầu vào, thực hiện các phép tính phức tạp dần trên chúng và đưa ra đầu ra để giải quyết các vấn đề trong thế giới thực như phân loại. Chúng tôi hạn chế bản thân để cung cấp các mạng nơ-ron chuyển tiếp.
Chúng tôi có đầu vào, đầu ra và luồng dữ liệu tuần tự trong một mạng sâu.
Mạng nơron được sử dụng rộng rãi trong các bài toán học có giám sát và học củng cố. Các mạng này dựa trên một tập hợp các lớp được kết nối với nhau.
Trong học sâu, số lượng các lớp ẩn, chủ yếu là phi tuyến tính, có thể lớn; nói khoảng 1000 lớp.
Các mô hình DL tạo ra kết quả tốt hơn nhiều so với các mạng ML bình thường.
Chúng tôi chủ yếu sử dụng phương pháp giảm dần độ dốc để tối ưu hóa mạng và giảm thiểu hàm mất mát.
Chúng ta có thể sử dụng Imagenet, một kho lưu trữ hàng triệu hình ảnh kỹ thuật số để phân loại tập dữ liệu thành các danh mục như mèo và chó. Lưới DL ngày càng được sử dụng nhiều hơn cho các hình ảnh động ngoài những hình ảnh tĩnh và cho phân tích chuỗi thời gian và văn bản.
Đào tạo tập dữ liệu là một phần quan trọng của mô hình Học sâu. Ngoài ra, Backpropagation là thuật toán chính trong đào tạo các mô hình DL.
DL đề cập đến việc đào tạo các mạng nơ-ron lớn với các phép biến đổi đầu ra đầu vào phức tạp.
Một ví dụ về DL là ánh xạ một bức ảnh với tên của (những) người trong ảnh như họ làm trên mạng xã hội và mô tả bức ảnh bằng một cụm từ là một ứng dụng gần đây khác của DL.
Mạng nơron là các hàm có các đầu vào như x1, x2, x3… được chuyển đổi thành các đầu ra như z1, z2, z3, v.v. trong hai (mạng nông) hoặc một số hoạt động trung gian còn được gọi là lớp (mạng sâu).
Trọng số và độ lệch thay đổi theo từng lớp. 'w' và 'v' là trọng số hoặc khớp thần kinh của các lớp của mạng nơ-ron.
Trường hợp sử dụng tốt nhất của học sâu là vấn đề học có giám sát. Ở đây, chúng ta có một bộ dữ liệu đầu vào lớn với một bộ đầu ra mong muốn.
Ở đây chúng tôi áp dụng thuật toán lan truyền ngược để có được dự đoán đầu ra chính xác.
Bộ dữ liệu cơ bản nhất của học sâu là MNIST, một bộ dữ liệu gồm các chữ số viết tay.
Chúng tôi có thể đào tạo sâu về Mạng nơ-ron hợp pháp với Keras để phân loại hình ảnh của các chữ số viết tay từ tập dữ liệu này.
Việc kích hoạt hoặc kích hoạt bộ phân loại mạng thần kinh tạo ra điểm số. Ví dụ, để phân loại bệnh nhân là bệnh tật và khỏe mạnh, chúng tôi xem xét các thông số như chiều cao, cân nặng và nhiệt độ cơ thể, huyết áp, v.v.
Điểm cao có nghĩa là bệnh nhân bị ốm và điểm thấp có nghĩa là anh ta khỏe mạnh.
Mỗi nút trong đầu ra và các lớp ẩn có các bộ phân loại riêng. Lớp đầu vào nhận đầu vào và chuyển điểm của nó cho lớp ẩn tiếp theo để kích hoạt thêm và điều này tiếp tục cho đến khi đạt được đầu ra.
Tiến trình này từ đầu vào đến đầu ra từ trái sang phải theo hướng thuận được gọi là forward propagation.
Đường dẫn phân bổ tín dụng (CAP) trong mạng nơ ron là một chuỗi các phép biến đổi bắt đầu từ đầu vào đến đầu ra. CAPs xây dựng các kết nối nhân quả có thể xảy ra giữa đầu vào và đầu ra.
Độ sâu CAP cho một mạng nơron chuyển tiếp nguồn cấp dữ liệu nhất định hoặc độ sâu CAP là số lớp ẩn cộng với một khi lớp đầu ra được bao gồm. Đối với mạng nơ-ron lặp lại, nơi tín hiệu có thể truyền qua một lớp nhiều lần, độ sâu CAP có thể là vô hạn.
Deep Nets và Shallow Nets
Không có ngưỡng độ sâu rõ ràng phân chia học nông và học sâu; nhưng hầu hết đều đồng ý rằng đối với học sâu có nhiều lớp phi tuyến tính, CAP phải lớn hơn hai.
Nút cơ bản trong mạng nơ-ron là một nhận thức bắt chước một nơ-ron trong mạng nơ-ron sinh học. Sau đó, chúng tôi có Nhận thức nhiều lớp hoặc MLP. Mỗi tập hợp đầu vào được sửa đổi bởi một tập hợp các trọng số và độ lệch; mỗi cạnh có một trọng số duy nhất và mỗi nút có một độ lệch duy nhất.
Dự đoán accuracy của một mạng thần kinh phụ thuộc vào weights and biases.
Quá trình cải thiện độ chính xác của mạng nơ-ron được gọi là training. Sản lượng từ lưới chống đỡ phía trước được so sánh với giá trị được biết là chính xác.
Các cost function or the loss function là hiệu số giữa sản lượng được tạo ra và sản lượng thực tế.
Mục đích của việc đào tạo là làm cho chi phí đào tạo càng nhỏ càng tốt trên hàng triệu ví dụ đào tạo. Để làm điều này, mạng sẽ điều chỉnh trọng số và độ chệch cho đến khi dự đoán khớp với đầu ra chính xác.
Một khi được huấn luyện tốt, mạng thần kinh có khả năng đưa ra dự đoán chính xác mọi lúc.
Khi mô hình trở nên phức tạp và bạn muốn máy tính của mình nhận ra chúng, bạn phải sử dụng mạng nơ-ron. Trong các tình huống mô hình phức tạp như vậy, mạng nơ-ron hoạt động tốt hơn các thuật toán cạnh tranh khác.
Hiện đã có những GPU có thể đào tạo chúng nhanh hơn bao giờ hết. Mạng nơ-ron sâu đã cách mạng hóa lĩnh vực AI
Máy tính đã được chứng minh là tốt trong việc thực hiện các phép tính lặp đi lặp lại và làm theo các hướng dẫn chi tiết nhưng lại không tốt trong việc nhận dạng các mẫu phức tạp.
Nếu có vấn đề về nhận dạng các mẫu đơn giản, thì máy vectơ hỗ trợ (svm) hoặc bộ phân loại hồi quy logistic có thể thực hiện tốt công việc, nhưng do sự phức tạp của các mẫu đơn giản, không có cách nào khác ngoài việc sử dụng mạng nơ-ron sâu.
Do đó, đối với các mẫu phức tạp như khuôn mặt người, các mạng nơ-ron nông sẽ không thành công và không còn cách nào khác ngoài việc sử dụng mạng nơ-ron sâu với nhiều lớp hơn. Lưới sâu có thể thực hiện công việc của mình bằng cách chia nhỏ các mẫu phức tạp thành các mẫu đơn giản hơn. Ví dụ, mặt người; adeep net sẽ sử dụng các cạnh để phát hiện các bộ phận như môi, mũi, mắt, tai, v.v. và sau đó kết hợp chúng lại với nhau để tạo thành một khuôn mặt người
Độ chính xác của dự đoán đúng đã trở nên chính xác đến mức gần đây tại Thử thách nhận dạng khuôn mẫu của Google, một mạng lưới sâu đã đánh bại một con người.
Ý tưởng về một mạng lưới các perceptron xếp lớp này đã có từ lâu; trong lĩnh vực này, các lưới sâu bắt chước não người. Nhưng một nhược điểm của điều này là chúng mất nhiều thời gian để đào tạo, một hạn chế về phần cứng
Tuy nhiên, các GPU hiệu suất cao gần đây đã có thể đào tạo các lưới sâu như vậy dưới một tuần; trong khi cpus nhanh có thể mất vài tuần hoặc có thể vài tháng để làm điều tương tự.
Chọn một mạng lưới sâu
Làm thế nào để chọn một lưới sâu? Chúng tôi phải quyết định xem chúng tôi có đang xây dựng một bộ phân loại hay chúng tôi đang cố gắng tìm các mẫu trong dữ liệu và liệu chúng tôi có sử dụng phương pháp học không giám sát hay không. Để trích xuất các mẫu từ một tập hợp dữ liệu không được gắn nhãn, chúng tôi sử dụng máy Boltzman bị hạn chế hoặc bộ mã hóa tự động.
Hãy xem xét các điểm sau khi chọn một mạng lưới sâu -
Để xử lý văn bản, phân tích tình cảm, phân tích cú pháp và nhận dạng thực thể tên, chúng tôi sử dụng mạng tenxơ nơron thuần đệ quy hoặc đệ quy hoặc RNTN;
Đối với bất kỳ mô hình ngôn ngữ nào hoạt động ở cấp độ ký tự, chúng tôi sử dụng mạng lặp lại.
Để nhận dạng hình ảnh, chúng tôi sử dụng mạng tín ngưỡng sâu DBN hoặc mạng tích hợp.
Để nhận dạng đối tượng, chúng tôi sử dụng RNTN hoặc mạng tích hợp.
Để nhận dạng giọng nói, chúng tôi sử dụng mạng lặp lại.
Nói chung, mạng niềm tin sâu và perceptron nhiều lớp với các đơn vị tuyến tính được chỉnh lưu hoặc RELU đều là những lựa chọn tốt để phân loại.
Đối với phân tích chuỗi thời gian, chúng tôi luôn khuyến nghị sử dụng mạng định kỳ.
Lưới thần kinh đã tồn tại hơn 50 năm; nhưng chỉ bây giờ họ đã trở nên nổi bật. Lý do là họ khó đào tạo; khi chúng ta cố gắng huấn luyện chúng bằng một phương pháp được gọi là truyền ngược, chúng ta gặp phải một vấn đề được gọi là gradient biến mất hoặc bùng nổ. Khi đào tạo một tập dữ liệu, chúng tôi liên tục tính toán hàm chi phí, là sự khác biệt giữa sản lượng dự đoán và sản lượng thực tế từ một tập dữ liệu đào tạo được gắn nhãn. thu được. Quá trình đào tạo sử dụng một gradient, là tốc độ mà chi phí sẽ thay đổi liên quan đến sự thay đổi của các giá trị trọng lượng hoặc độ lệch.
Mạng Boltzman bị hạn chế hoặc Trình mã tự động - RBN
Vào năm 2006, một bước đột phá đã đạt được trong việc giải quyết vấn đề độ dốc biến mất. Geoff Hinton đã nghĩ ra một chiến lược mới dẫn đến sự phát triển củaRestricted Boltzman Machine - RBM, lưới hai lớp nông.
Lớp đầu tiên là visible lớp và lớp thứ hai là hiddenlớp. Mỗi nút trong lớp hiển thị được kết nối với mọi nút trong lớp ẩn. Mạng được gọi là bị hạn chế vì không có hai lớp nào trong cùng một lớp được phép chia sẻ kết nối.
Mã tự động là mạng mã hóa dữ liệu đầu vào dưới dạng vectơ. Chúng tạo ra một biểu diễn ẩn hoặc nén của dữ liệu thô. Các vectơ rất hữu ích trong việc giảm kích thước; vector nén dữ liệu thô thành một số kích thước cơ bản nhỏ hơn. Bộ mã tự động được ghép nối với bộ giải mã, cho phép xây dựng lại dữ liệu đầu vào dựa trên biểu diễn ẩn của nó.
RBM là tương đương toán học của một trình dịch hai chiều. Một chuyển tiếp nhận các đầu vào và chuyển chúng thành một tập hợp các số mã hóa các đầu vào. Trong khi đó, một đường chuyền ngược sẽ lấy bộ số này và chuyển chúng trở lại thành các đầu vào được tái tạo. Lưới được đào tạo bài bản sẽ thực hiện việc chống lưng với độ chính xác cao.
Trong cả hai bước, trọng số và độ lệch có vai trò quan trọng; chúng giúp RBM giải mã mối quan hệ qua lại giữa các đầu vào và quyết định đầu vào nào là cần thiết trong việc phát hiện các mẫu. Thông qua chuyển tiếp và chuyển tiếp, RBM được huấn luyện để xây dựng lại đầu vào với các trọng số và độ lệch khác nhau cho đến khi đầu vào và kết cấu ở đó gần nhau nhất có thể. Một khía cạnh thú vị của RBM là dữ liệu không cần phải được dán nhãn. Điều này hóa ra lại rất quan trọng đối với các tập dữ liệu trong thế giới thực như ảnh, video, giọng nói và dữ liệu cảm biến, tất cả đều có xu hướng không được gắn nhãn. Thay vì con người gắn nhãn dữ liệu theo cách thủ công, RBM tự động sắp xếp thông qua dữ liệu; bằng cách điều chỉnh đúng trọng số và độ lệch, RBM có thể trích xuất các tính năng quan trọng và tái cấu trúc đầu vào. RBM là một phần của họ lưới thần kinh trích xuất tính năng, được thiết kế để nhận ra các mẫu vốn có trong dữ liệu. Chúng còn được gọi là bộ mã hóa tự động vì chúng phải mã hóa cấu trúc của chính chúng.
Mạng niềm tin sâu sắc - DBNs
Mạng lưới niềm tin sâu sắc (DBN) được hình thành bằng cách kết hợp RBM và giới thiệu một phương pháp đào tạo thông minh. Chúng tôi có một mô hình mới cuối cùng giải quyết được vấn đề về độ dốc biến mất. Geoff Hinton đã phát minh ra RBM và Deep Belief Nets để thay thế cho việc truyền ngược.
Một DBN có cấu trúc tương tự như MLP (Multi-layer perceptron), nhưng rất khác khi được huấn luyện. đó là việc đào tạo cho phép các DBN vượt trội hơn các đối tác nông của chúng
Một DBN có thể được hình dung như một chồng RBM trong đó lớp ẩn của một RBM là lớp có thể nhìn thấy của RBM phía trên nó. RBM đầu tiên được đào tạo để xây dựng lại đầu vào của nó một cách chính xác nhất có thể.
Lớp ẩn của RBM đầu tiên được lấy làm lớp nhìn thấy của RBM thứ hai và RBM thứ hai được đào tạo bằng cách sử dụng các đầu ra từ RBM đầu tiên. Quá trình này được lặp lại cho đến khi mọi lớp trong mạng được đào tạo.
Trong một DBN, mỗi RBM học toàn bộ đầu vào. DBN hoạt động trên toàn cầu bằng cách tinh chỉnh toàn bộ đầu vào liên tiếp khi mô hình từ từ cải thiện giống như một ống kính máy ảnh từ từ lấy nét một bức ảnh. Một chồng RBM hoạt động tốt hơn một RBM đơn lẻ vì MLP perceptron nhiều lớp hoạt động tốt hơn perceptron đơn lẻ.
Ở giai đoạn này, các RBM đã phát hiện các mẫu vốn có trong dữ liệu nhưng không có bất kỳ tên hoặc nhãn nào. Để kết thúc quá trình đào tạo DBN, chúng tôi phải giới thiệu các nhãn cho các mẫu và tinh chỉnh mạng bằng cách học có giám sát.
Chúng tôi cần một tập hợp rất nhỏ các mẫu được gắn nhãn để các tính năng và mẫu có thể được liên kết với tên. Tập hợp dữ liệu có nhãn nhỏ này được sử dụng để đào tạo. Tập hợp dữ liệu được gắn nhãn này có thể rất nhỏ khi so sánh với tập dữ liệu gốc.
Trọng số và độ chệch được thay đổi một chút, dẫn đến sự thay đổi nhỏ trong nhận thức của mạng lưới về các mẫu và thường tổng độ chính xác tăng lên một chút.
Việc đào tạo cũng có thể được hoàn thành trong một khoảng thời gian hợp lý bằng cách sử dụng GPU cho kết quả rất chính xác so với lưới nông và chúng tôi cũng thấy một giải pháp để làm biến mất vấn đề gradient.
Mạng đối thủ chung - GAN
Mạng lưới đối thủ tạo ra là mạng lưới thần kinh sâu bao gồm hai lưới, đọ sức với nhau, do đó có tên "đối thủ".
GAN đã được giới thiệu trong một bài báo do các nhà nghiên cứu tại Đại học Montreal xuất bản vào năm 2014. Chuyên gia AI của Facebook Yann LeCun, đề cập đến GAN, được gọi là đào tạo đối thủ là “ý tưởng thú vị nhất trong 10 năm qua trong ML.”
Tiềm năng của GAN là rất lớn, vì quá trình quét mạng học cách bắt chước bất kỳ sự phân phối dữ liệu nào. GAN có thể được dạy để tạo ra các thế giới song song tương tự như thế giới của chúng ta trong bất kỳ lĩnh vực nào: hình ảnh, âm nhạc, lời nói, văn xuôi. Theo một cách nào đó, họ là những nghệ sĩ robot, và sản lượng của họ khá ấn tượng.
Trong GAN, một mạng nơron, được gọi là trình tạo, tạo ra các cá thể dữ liệu mới, trong khi mạng kia, bộ phân biệt, đánh giá chúng về tính xác thực.
Giả sử chúng tôi đang cố gắng tạo ra các chữ số viết tay giống như các chữ số được tìm thấy trong tập dữ liệu MNIST, được lấy từ thế giới thực. Công việc của bộ phân biệt, khi được hiển thị một thể hiện từ tập dữ liệu MNIST thực, là công nhận chúng là xác thực.
Bây giờ hãy xem xét các bước sau của GAN -
Mạng máy phát nhận đầu vào dưới dạng các số ngẫu nhiên và trả về một hình ảnh.
Hình ảnh được tạo này được cung cấp làm đầu vào cho mạng phân biệt cùng với một luồng hình ảnh được lấy từ tập dữ liệu thực tế.
Bộ phân biệt lấy cả hình ảnh thật và giả và trả về xác suất, một số từ 0 đến 1, với 1 đại diện cho dự đoán về tính xác thực và 0 đại diện cho giả mạo.
Vì vậy, bạn có một vòng phản hồi kép -
Bộ phân biệt nằm trong một vòng phản hồi với sự thật cơ bản của hình ảnh mà chúng ta biết.
Bộ tạo trong một vòng phản hồi với bộ phân biệt.
Mạng thần kinh tái diễn - RNN
RNNMạng nơ-ron chắc chắn trong đó dữ liệu có thể chảy theo bất kỳ hướng nào. Các mạng này được sử dụng cho các ứng dụng như lập mô hình ngôn ngữ hoặc Xử lý ngôn ngữ tự nhiên (NLP).
Khái niệm cơ bản về RNN là sử dụng thông tin tuần tự. Trong một mạng nơ-ron thông thường, người ta cho rằng tất cả các đầu vào và đầu ra là độc lập với nhau. Nếu chúng ta muốn dự đoán từ tiếp theo trong một câu, chúng ta phải biết những từ nào đến trước nó.
Các RNN được gọi là tuần hoàn vì chúng lặp lại cùng một nhiệm vụ cho mọi phần tử của một chuỗi, với đầu ra dựa trên các tính toán trước đó. Do đó, RNN có thể nói là có một “bộ nhớ” ghi lại thông tin về những gì đã được tính toán trước đó. Về lý thuyết, các RNN có thể sử dụng thông tin theo chuỗi rất dài, nhưng trên thực tế, chúng có thể nhìn lại chỉ vài bước.
Mạng bộ nhớ ngắn hạn dài (LSTM) là RNN được sử dụng phổ biến nhất.
Cùng với Mạng nơ ron phức hợp, RNN đã được sử dụng như một phần của mô hình để tạo mô tả cho hình ảnh không có nhãn. Nó là khá tuyệt vời như thế nào điều này có vẻ hoạt động tốt.
Mạng Neural Sâu Convolutional - CNNs
Nếu chúng ta tăng số lượng các lớp trong mạng nơ-ron để làm cho nó sâu hơn, nó sẽ làm tăng độ phức tạp của mạng và cho phép chúng ta lập mô hình các chức năng phức tạp hơn. Tuy nhiên, số lượng trọng số và độ lệch sẽ tăng lên theo cấp số nhân. Trên thực tế, việc học những vấn đề khó khăn như vậy có thể trở nên bất khả thi đối với các mạng nơ-ron bình thường. Điều này dẫn đến một giải pháp, đó là các mạng nơ-ron tích tụ.
CNN được sử dụng rộng rãi trong thị giác máy tính; cũng đã được áp dụng trong mô hình âm thanh để nhận dạng giọng nói tự động.
Ý tưởng đằng sau mạng nơ-ron tích tụ là ý tưởng về một "bộ lọc chuyển động" đi qua hình ảnh. Bộ lọc di chuyển, hoặc tích chập, áp dụng cho một vùng lân cận nhất định của các nút, ví dụ có thể là pixel, trong đó bộ lọc được áp dụng là 0,5 x giá trị nút -
Nhà nghiên cứu nổi tiếng Yann LeCun đã đi tiên phong trong các mạng nơ-ron phức hợp. Facebook là phần mềm nhận dạng khuôn mặt sử dụng các mạng này. CNN là giải pháp đi đầu cho các dự án thị giác máy. Có nhiều lớp đối với một mạng phức hợp. Trong thử thách Imagenet, một cỗ máy đã có thể đánh bại con người khi nhận dạng vật thể vào năm 2015.
Nói tóm lại, Mạng nơ-ron hợp pháp (CNN) là mạng nơ-ron nhiều lớp. Các lớp đôi khi lên đến 17 hoặc nhiều hơn và giả sử dữ liệu đầu vào là hình ảnh.
CNN giảm đáng kể số lượng các thông số cần được điều chỉnh. Vì vậy, CNN xử lý hiệu quả độ lớn của hình ảnh thô.