Perceptrons là gì ?

2667

Để có thể hiểu được mạng neurons là gì thì ta phải bắt đầu tìm hiểu từ 1 neuron nhân tạo được gọi là perceptron. Perceptrons được phát triển vào khoảng những năm 1950 – 1960 bởi nhà khoa học Frank Rosenblatt và được lấy cảm hứng từ những ý tưởng trước đó của Warren McCulloch và Walter Pitts.

HOW IT WORKS

Perceptron nhận vào các giá trị nhị phân như x1, x2, … và sau đó đưa ra kết quả là cũng dưới dạng nhị phân:

Ảnh trên mô tả 1 perceptron có 3 input: x1, x2, x3. Nó có thể có ít hoặc nhiều hơn input tùy vào mục đích sử dụng. Rosenblatt đề xuất 1 quy tắc đơn giản để có thể tính toán được output. Ông thêm vào các weights (w1, w2, …) là các giá trị thể hiện tầm quan trọng của từng input đối với output. Neuron output sẽ là 0 hoặc 1, được tính bằng cách xem xét tổng các weight nhỏ hơn hay lớn hơn gía trị threshhold. Cũng giống như weights, threshhold là 1 parameter của neuron. Cho rõ ràng hơn ta có quy tắc sau: 

Đó là tất cả những gì 1 perceptron hoạt động. Trên đây chỉ là mô hình thuật toán cơ bản. 1 cách khác bạn có thể nghĩ về perceptron là nó như 1 thiết bị ra quyết định bằng cách tổng hợp tất cả các lập luận, cơ sở đang có. Tôi sẽ lấy 1 ví dụ mặc dù nó ko thực tế cho lắm nhưng sẽ dễ hiểu hơn. Giả dụ cuối tuần này sẽ có 1 lễ hội lớn trong thành phố và bạn đang phân vân không biết mình có nên đi hay không. Có rất nhiều yếu tố làm ảnh hưởng đến quyết định của bạn nhưng ở đây ta lấy 3 lý do chính ảnh hưởng trực tiếp đến nó:

  1. Thời tiết có đẹp không ?
  2. Bạn trai / gái của bạn có muốn đi với bạn không ( cứ tưởng tượng là bạn có đi :v )
  3. Lễ hội đó có gần với các phương tiện công cộng không ?

Chúng ta có thể coi 3 yếu tố trên ứng với 3 biến x1, x2, x3. Giả sử, ta có x1 = 1 nếu thời tiết đẹp, x1 = 0 nếu thời tiết xấu. Tương tự như vậy, x2 = 1 nếu bạn trai / gái của bạn muốn đi và x2 = 0 trong trường hợp ngược lại. Tương tự với x3. Bây giờ coi như bạn cực kỳ thích lễ hội đó và sẵn sàng đi 1 mình nếu bạn trai / gái của bạn không thể đi cùng được. Tuy nhiên bạn lại cực kỳ ghét thời tiết xấu, bạn sẽ không đi nếu dự báo thời tiết bảo hôm đó trời sẽ mưa. Trong trường hợp này bạn có thể dùng perceptron để đưa ra quyết định. Đầu tiên ta chọn các giá trị trọng số cho nó, w1 = 6 cho thời tiết, w2 = 2 và w3 = 2 cho các yếu tố khác. Giá trị của các trọng số càng lớn chứng tỏ nó càng ảnh hưởng đến quyết định cuối cùng của bạn. Cuối cùng chọn giá trị threshold = 5 cho perceptron. Với lựa chọn này thì perceptron sẽ đưa ra quyết định có đi hay không dựa trên kết quả thời tiết. Nó sẽ trả về 1 nếu thời tiết đẹp và 0 nếu thời tiết xấu mặc cho bạn trai / gái của bạn có đi cùng bạn hay không, địa điểm lễ hội có gần với các trạm phương tiện công cộng hay không cũng chả quan trọng.

  HTTP/2 là gì ? CDN có hỗ trợ HTTP/2 không?
  Chmod 777: Nó thực sự nghĩa là gì?

Thực tế, perceptron cũng không phải 1 mô hình hoàn chỉnh của việc đưa ra quyết định của con người. Ví dụ trên chỉ là để mô tả cách perceptron tổng hợp các yếu tố và đưa ra quyết định dựa trên độ ưu tiên của từng cái. Mạng perceptron càng phức tạp càng đưa ra quyết định chính xác.

Lớp đầu tiên của perceptron sẽ đưa ra 3 quyết định dựa trên việc tổng hợp các inputs. Mỗi perceptron ở lớp thứ 2 sẽ được tổng hợp từ kết quả của các neuron ở lớp đầu tiên. Như vậy, perceptron ở lớp sau có thể tạo ra các quyết định phức tạp hơn, tính chính xác cao hơn so với lớp trước. Ở đầu bài viết, tôi có chỉ ra perceptron chỉ có 1 output. Tuy nhiên ở ví dụ trên ta có thể thấy có nhiều outputs. Thực tế chúng vẫn chỉ là 1 output. Các output ở cuối các mũi tên chỉ là 1 cách để chỉ ra rằng output từ perceptron đó được sử dụng để làm input cho 1 hoặc nhiều perceptrons khác. Việc này sẽ dễ dàng hơn là vẽ 1 output rồi sau đó chia thành các nhánh.

Bây giờ chúng ta sẽ đơn giản hóa cách mô tả 1 perceptron. Điều kiện jwjxj > threshold là khá cồng kềnh. Ta có thể đơn giản nó bằng cách thêm 2 thay đổi. Đầu tiên viết lại w.x=∑jwjxj trong đó w và x là các vector biểu diễn weigths và inputs. Tiếp theo là chuyển threshold sang bên kia bất đẳng thức, thay nó bằng 1 giá trị mà chúng ta sẽ gọi là perceptron’s bias. Sử dụng bias thay thế threshold, perceptron có thể viết lại thành:

Bạn có thể nghĩ bias là 1 đại lượng dùng để đo khả năng để perceptron trả về giá trị là 1 hay perceptron sẽ được kích hoạt. Nếu 1 perceptron có bias lớn, điều đó nghĩa là khả năng output của nó được trả về bằng 1 là càng lớn và ngược lại.

Đây không phải cách duy nhất để perceptron có thể tổng hợp các yếu tố lại và đưa ra kết luận. 1 cách khác nữa đó là tính toánsử dụng các hàm logic cơ bản như AND, OR và NAND. Tôi sẽ nói chi tiết hơn trong các bài sau.

Nguồn: http://neuralnetworksanddeeplearning.com/chap1.html

Techtalk via viblo

  WebRTC là gì ? Giới thiệu về Kurento - một máy chủ truyền thông WebRTC.
  Flutter là gì và khác biệt như thế nào?
CHIA SẺ