Mạng lưới thần kinh có thể cung cấp nhiều hơn câu trả lời có hay không


11

Mỗi ví dụ về mạng nơ-ron để nhận dạng hình ảnh mà tôi đã đọc đều tạo ra câu trả lời "có" hoặc "không" đơn giản. Một nút thoát tương ứng với "Có, đây là khuôn mặt của con người" và một nút tương ứng với "Không, đây không phải là khuôn mặt của con người".

Tôi hiểu rằng điều này có thể đơn giản để giải thích, nhưng tôi tự hỏi làm thế nào một mạng lưới thần kinh như vậy có thể được lập trình để đưa ra một đầu ra cụ thể hơn. Ví dụ, giả sử tôi đang phân loại động vật. Thay vì nói "Động vật" hoặc "Không phải động vật", tôi muốn có câu trả lời như "Chó", "Cá", "Chim", "Rắn", v.v., với một nút thoát cuối cùng là "Không phải là động vật / Tôi đừng nhận ra điều này ".

Tôi chắc chắn điều này phải có thể, nhưng tôi gặp khó khăn trong việc hiểu làm thế nào. Có vẻ như do thuật toán đào tạo lỗi truyền ngược, khi bạn huấn luyện một nút thoát (nghĩa là "Đây là một con chó") và trọng lượng của các nơ-ron được thay đổi, sau đó là trạng thái lý tưởng cho một nút thoát khác mà trước đây bạn được huấn luyện (tức là "Đây là một con chim") sẽ bắt đầu đi chệch hướng và ngược lại. Vì vậy, đào tạo mạng để nhận ra một danh mục sẽ phá hoại bất kỳ đào tạo nào được thực hiện cho một danh mục khác, do đó giới hạn chúng tôi trong một thiết kế đơn giản "Có" hoặc "Không".

Điều này làm cho một nhận dạng như vậy là không thể? Hay tôi đang hiểu nhầm thuật toán? Hai điều duy nhất tôi có thể nghĩ là:

  • Hoặc là chúng ta có thể huấn luyện một mạng lưới thần kinh cho từng thứ chúng ta muốn phân loại và bằng cách nào đó sử dụng chúng để xây dựng một mạng siêu lớn hơn (ví dụ: mạng cho "con chó", mạng cho "con chim", v.v. cộng lại để tạo siêu mạng cho "động vật"); hoặc là,

  • Tạo ra một số phương pháp đào tạo phức tạp lố bịch đòi hỏi toán học cực kỳ tiên tiến và bằng cách nào đó sẽ tạo ra trạng thái cân nặng thần kinh lý tưởng cho tất cả các đầu ra có thể (nói cách khác, insert math magic here).

(Lưu ý bên 1: Tôi đặc biệt xem xét các tri giác đa lớp như một loại mạng lưới thần kinh.)

(Lưu ý bên 2: Đối với "giải pháp khả thi" đầu tiên, có mỗi mạng thần kinh cụ thể và lặp qua chúng cho đến khi chúng tôi nhận được phản hồi "Có" là không đủ. Tôi biết điều này có thể được thực hiện khá dễ dàng, nhưng đó là chức năng đơn giản lập trình thay vì học máy. Tôi muốn biết liệu có thể có một mạng lưới thần kinh để cung cấp thông tin và nhận được phản hồi phù hợp hay không.)

Câu trả lời:


15

Để trả lời chỉ tiêu đề của bạn, có. Mạng lưới thần kinh có thể đưa ra câu trả lời không boolean. Ví dụ, mạng lưới thần kinh đã được sử dụng để dự đoán giá trị thị trường chứng khoán, đây là câu trả lời bằng số và do đó không chỉ có / không. Mạng lưới thần kinh cũng được sử dụng trong nhận dạng chữ viết tay, trong đó đầu ra có thể là một trong toàn bộ các ký tự - toàn bộ bảng chữ cái, số và dấu chấm câu.

Để tập trung hơn vào ví dụ của bạn - nhận ra động vật - tôi muốn nói là có thể. Nó chủ yếu là một phần mở rộng của ví dụ nhận dạng chữ viết tay; bạn đang nhận ra các đặc điểm của hình dạng và so sánh chúng với hình dạng "lý tưởng" để xem hình nào phù hợp. Các vấn đề là kỹ thuật, chứ không phải là lý thuyết. Chữ viết tay, khi chạy qua phần mềm nhận dạng, thường được ánh xạ xuống một tập hợp các đường và đường cong - đẹp và đơn giản. Khuôn mặt động vật khó nhận biết hơn, vì vậy bạn cần logic xử lý hình ảnh để trích xuất các tính năng như mắt, mũi, miệng, phác thảo hộp sọ thô, v.v. Tuy nhiên, bạn chỉ hỏi nếu có thể chứ không phải làm thế nào, vì vậy câu trả lời là có.

Đặt cược tốt nhất của bạn có lẽ là hãy xem những thứ như Lý thuyết cộng hưởng thích ứng. Nguyên tắc chung là đầu vào cảm giác (trong trường hợp này, các số liệu về kích thước, hình dạng và khoảng cách tương đối của các đặc điểm khuôn mặt khác nhau) được so sánh với "nguyên mẫu" hoặc mẫu xác định loại sự vật đó. Nếu sự khác biệt giữa đầu vào cảm giác và mẫu được nhớ nằm dưới một ngưỡng nhất định (như được xác định bởi "tham số cảnh giác"), thì đối tượng được quan sát được coi là một thành viên của nhóm được đại diện bởi mẫu; nếu không tìm thấy kết quả khớp thì hệ thống sẽ tuyên bố nó là loại chưa từng thấy trước đây. Điều thú vị về loại lưới này là khi nó nhận ra rằng một vật thể là một con ngựa, nó có thể tìm hiểu thêm về việc nhận ra ngựa để nó có thể cho biết sự khác biệt giữa, nói,

BIÊN TẬP:

(Vì lợi ích của việc tiết lộ đầy đủ: Tôi vẫn đang tự nghiên cứu dự án này cho một dự án, vì vậy kiến ​​thức của tôi vẫn chưa đầy đủ và có thể có một chút sai sót.)

Làm thế nào điều này liên kết với trọng số cài đặt backpropogation cho một nút đầu ra làm hỏng trọng số cho một nút khác, được đào tạo trước đó?

Từ những gì tôi đã đọc cho đến nay, mô hình ART hơi khác một chút; nó được chia thành hai phần - một phần học đầu vào và một phần học đầu ra cho chúng. Điều này có nghĩa là khi nó đi qua một bộ đầu vào không khớp, một nơron không được cam kết sẽ được kích hoạt và điều chỉnh để khớp với đầu vào, để nơ ron đó sẽ kích hoạt khớp lần sau. Các tế bào thần kinh trong lớp này chỉ để nhận biết. Khi lớp này tìm thấy sự trùng khớp, các đầu vào được đưa đến lớp bên dưới, đây là lớp tính toán đáp ứng. Đối với tình huống của bạn, lớp này có thể sẽ rất đơn giản. Hệ thống tôi đang xem là học lái xe. Đây thực sự là hai loại học tập; một là học lái xe trong nhiều tình huống khác nhau và hai là học cách nhận biết tình huống. Ví dụ,

Ý tưởng học các đầu vào mới mà không làm hỏng các hành vi đã học trước đây được gọi là tình huống khó xử về tính ổn định / độ dẻo. Một mạng lưới cần phải đủ ổn định để giữ hành vi học được, nhưng đủ dẻo để nó có thể được dạy những điều mới khi hoàn cảnh thay đổi. Đây là chính xác những gì lưới ART được dự định để giải quyết.


Cảm ơn câu trả lời tuyệt vời của bạn! Vậy làm thế nào để liên kết này với trọng số cài đặt backpropogation cho một nút đầu ra làm hỏng trọng số cho một nút khác, được đào tạo trước đó? Hay tôi đang nghĩ về điều này sai cách?
asteri

@Jeff Tôi đã thêm một chút vào câu trả lời của tôi. Nó không đặc biệt chi tiết, tôi sợ - tôi vẫn đang tự học điều này. Tuy nhiên, câu hỏi của bạn liên quan đến vấn đề nan giải về tính ổn định / độ dẻo, ở chỗ bạn muốn có thể đào tạo một mạng lưới để nhận ra điều gì đó mới mà không quên cách nhận ra điều gì đó đã biết và Lý thuyết cộng hưởng thích ứng nhằm giải quyết chính xác vấn đề đó, vì vậy nó có thể đáng để xem xét.
anaximander

3

Câu trả lời của @ anaximander là khá tốt, tôi nghĩ tôi sẽ nhận xét về phần này của câu hỏi của bạn:

Có vẻ như do thuật toán đào tạo lỗi truyền ngược, khi bạn huấn luyện một nút thoát (nghĩa là "Đây là một con chó") và trọng lượng của các nơ-ron được thay đổi, sau đó là trạng thái lý tưởng cho một nút thoát khác mà trước đây bạn được huấn luyện (tức là "Đây là một con chim") sẽ bắt đầu đi chệch hướng và ngược lại. Vì vậy, đào tạo mạng để nhận ra một danh mục sẽ phá hoại bất kỳ đào tạo nào được thực hiện cho một danh mục khác, do đó giới hạn chúng tôi trong một thiết kế đơn giản "Có" hoặc "Không".

Vâng, tôi nghĩ rằng giả định của bạn là sai ở đây; nếu tôi hiểu chính xác, bạn có NN với một đầu ra cho mỗi danh mục bạn đang cố gắng phân loại. Lý tưởng nhất là bạn muốn chúng hoạt động gần như độc lập, để phân loại "chó" và "chim" không bắn cùng một lúc. Vì vậy, thực sự, trong quá trình huấn luyện, điều sẽ xảy ra là khi bạn huấn luyện NN với kết quả "chó", việc truyền ngược sẽ cố gắng đảm bảo rằng "chim" và các tế bào thần kinh đầu ra khác không tạo ra dương tính giả. Vì vậy, về mặt lý thuyết, nó sẽ hoạt động tốt, trái với nhận xét của bạn; sự củng cố của một kết quả tiêu cực cho "con chim" là chính xác.

Tuy nhiên, vấn đề của bạn sẽ là khả năng mở rộng của phương pháp này. Khi bạn thêm nhiều danh mục vào mạng, việc đào tạo sẽ trở nên phức tạp hơn theo cách ít nhất là theo tuyến tính (nhưng có thể tệ hơn nhiều). Vì lý do này, nhiều người sử dụng một cách tiếp cận trong đó các NN riêng lẻ được đào tạo cho từng loại; điều này giữ cho mọi thứ đủ đơn giản và tương đối có thể mở rộng. Cấp độ meta của cách chúng được kết hợp tùy thuộc vào bạn. Bạn có thể chỉ cần lặp qua tất cả các NN và xem những NN nào tạo ra kết quả dương, bạn có thể tạo ra các NN heuristic cấp trung bình cố gắng thu hẹp loại động vật cho bạn hoặc thậm chí bạn có thể có một NN khổng lồ kết hợp các NN riêng lẻ làm tế bào thần kinh . Về bản chất, điều tôi đang cố gắng nói là bạn có kiến ​​thức trước về cấu trúc của vấn đề - các phân loại riêng lẻ rất có thể khác biệt với nhau;

EDIT: Để trả lời câu hỏi tiêu đề, tất nhiên NN có thể cung cấp nhiều hơn câu trả lời có / không. Trong các mô hình "tiêu chuẩn", mỗi nơ ron đầu ra thường kích hoạt có / không (mặc dù hành vi này có thể được thay đổi, nếu bạn quá nghiêng), đại diện cho một bit thông tin; nhưng cũng giống như với máy tính của bạn, các bit có thể được kết hợp để cung cấp một loạt các giá trị riêng biệt, có thể được diễn giải theo bất kỳ cách nào bạn muốn. Một ví dụ khá trực quan về đầu ra không nhị phân sẽ là Bản đồ tự tổ chức , thường có đầu ra 2D.


Cảm ơn câu trả lời của bạn. Tôi biết rằng tôi có thể có nhiều nút đầu ra như tôi muốn, nhưng tôi lo ngại rằng do bản chất của thuật toán backpropogation (điều chỉnh tất cả các trọng số theo kết quả mong muốn) mà việc học một phân loại sẽ không học được một phân loại khác.
asteri

1

Câu trả lời ngắn gọn và không quá cứng nhắc: có mỗi NN có thể cung cấp nhiều thông tin hơn chỉ yes, hoặc no. Đó là do ngưỡng. Nếu trọng số cao hơn một số ngưỡng, câu trả lời là một trong các lớp phân loại, nếu nó thấp hơn thì câu trả lời là lớp phân loại thứ hai. Về cơ bản:

    0..threshold 
    threshold..1

Đầu ra của Neuron nằm trong khoảng [0..1] (hoặc [-1,1] tùy thuộc) và bạn không muốn nhận câu trả lời cho dù đầu ra thấp hơn hay cao hơn ngưỡng nhưng đầu ra (đầu ra bạn có thể dễ dàng chuyển đổi thành khoảng 0..1 và có nghĩa là%)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.