0

    Không có sản phẩm nào trong giỏ hàng.

Dự báo số lượng theo thời gian trong kinh doanh sản phẩm điện máy

Các mục tiêu của nghiên cứu ứng dụng thuật toán ANN trong dự báo doanh số cụ thể như sau:

  1. Mạng noron
  2. Hướng thời gian
  3. Sản phẩm kinh doanh
  4. Doanh số hướng thời gian

Mạng nơron nhân tạo ANN

  1. Giới thiệu

Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng nơron, neural network là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơron sinh học. Nó được tạo lên từ một số lượng lớn các phần tử (gọi là phần tử xử lý hay nơron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó.

Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu...) thông qua một quá trình học từ tập các mẫu huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron.

  1. Các nơron sinh học và bộ não con người

Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con người bao gồm khoảng 1011 nơron sinh học tham gia vào khoảng 1015 kết nối trên các đường truyền. Mỗi đường truyền này dài khoảng hơn một mét. Các nơron có nhiều đặc điểm chung với các tế bào khác trong cơ thể, ngoài ra chúng còn có những khả năng mà các tế bào khác không có được, đó là khả năng nhận, xử lý và truyền các tín hiệu điện hóa trên các đường mòn nơron, các con đường này tạo nên hệ thống giao tiếp của bộ não.

Hình 2.1: Cấu trúc của một nơron sinh học điển hình

Mỗi nơron sinh học có 3 thành phần cơ bản:

  • Các nhánh vào hình cây ( dendrites)
  • Thân tế bào (cell body)
  • Sợi trục ra (axon)

Các nhánh hình cây truyền tín hiệu vào đến thân tế bào. Thân tế bào tổng hợp và xử lý cho tín hiệu đi ra. Sợi trục truyền tín hiệu ra từ thân tế bào này sang nơron khác. Điểm liên kết giữa sợi trục của nơron này với nhánh hình cây của nơron khác gọi là synapse. Liên kết giữa các nơron và độ nhạy của mỗi synapse được xác định bởi quá trình hóa học phức tạp. Một số cấu trúc của nơron được xác định trước lúc sinh ra. Một số cấu trúc được phát triển thông qua quá trình học. Trong cuộc đời cá thể, một số liên kết mới được hình thành, một số khác bị hủy bỏ.

Như vậy nơron sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu vào, xử lý các tín hiệu này và cho ra một tín hiệu output. Tín hiệu output này sau đó được truyền đi làm tín hiệu đầu vào cho các nơron khác.

Dựa trên những hiểu biết về nơron sinh học, con người xây dựng nơron nhân tạo với hy vọng tạo nên một mô hình có sức mạnh như bộ não.

  1. Mô hình mạng nơron nhân tạo

Một nơron là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng nơron. Cấu trúc của một nơron được mô tả như hình dưới:

Hình 2.2: Mô hình mạng nơron nhân tạo

Các thành phần cơ bản của một nơron nhân tạo bao gồm:

  • Tập các đầu vào: Là các tín hiệu vào (input signals) của nơron, các tín hiệu này thường được đưa vào dưới dạng một vector N chiều.
  • Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng số liên kết – Synaptic weight). Trọng số liên kết giữa tín hiệu vào thứ j với nơron k thường được kí hiệu là wkj. Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng.
  •  Bộ tổng (Summing function): Thường dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó.
  •  Ngưỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa vào như một thành phần của hàm truyền.
  •  Hàm truyền (Transfer function): Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơron. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho. Thông thường, phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1] hoặc [-1, 1]. Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến. Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán và kinh nghiệm của người thiết kế mạng. Một số hàm truyền thường sử dụng trong các mô hình mạng nơron được đưa ra trong bảng 1.
  •  Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là một đầu ra.
  1. Phân loại cấu trúc mạng nơron nhân tạo

Cấu trúc mạng được định nghĩa bởi: số lớp (layers), số nơron mỗi lớp, và sự liên kết giữa các lớp như thế nào. Các mạng về tổng thể được chia thành các loại khác nhau chủ yếu dựa trên cách thức liên kết giữa các lớp.

  • Mạng truyền thẳng (Multilayered Feedforward Neural Network - MFNN)

Trong mạng nơron truyền thẳng, các liên kết đi theo một hướng nhất định từ lớp vào tới lớp ra, không tạo thành đồ thị có chu trình với các đỉnh là các nơron, các cung là các liên kết giữa chúng.

Hình 2.3: Mạng nơron truyền thẳng nhiều lớp

  • Mạng hồi quy (Recurrent Neural Network)

Cấu trúc mạng được kết nối chuyển tiếp tín hiệu từ lớp vào thông qua lớp ẩn đến lớp ra và đồng thời hồi tiếp tín hiệu về đơn vị xử lý chính nó hoặc các đơn vị xử lý trong lớp hoặc ở lớp khác. Mạng hồi qui cho phép các liên kết nơron tạo thành chu trình. Vì các thông tin ra của các nơron được truyền lại cho các nơron đã góp phần kích hoạt chúng, nên mạng hồi qui còn có khả năng lưu trữ trạng thái trong của nó dưới dạng các ngưỡng kích hoạt ngoài các trọng số liên kết nơron.

Hình 2.4: Mạng hồi quy.

  • Mạng tự tổ chức (Self Origanizing Feature Maps – SOM)

Con người có khả năng sử dụng kinh nghiệm quá khứ để thích nghi với những thay đổi của môi trường. Sự thích nghi đó không cần hướng dẫn hay chỉ đạo từ bên ngoài. Mạng nơron thực hiện theo nguyên lý đó gọi là mạng tự tổ chức. SOM được Kohonen phát triển vào đầu thập những năm 80, nên cũng thường được gọi là mạng Kohonen. SOM được dùng để gom cụm dữ liệu (data clustering), nghĩa là học không có hướng dẫn (unsupervised learning).

Cấu trúc SOM thường có hai lớp: lớp đầu vào (input layer) và lớp Kohonen (Kohonen layer). Các nơron của lớp đầu vào tương ứng với một thành phần trong vector đặc trưng đang xét. Ví dụ nếu xét dữ liệu có vector đặc trưng là 4 thành phần thì lớp đầu vào sẽ có 4 nơron. Mỗi nơron của lớp đầu vào được nối với tất cả các nơron của lớp Kohonen. Các nơron trong lớp Kohonen được tổ chức thành một không gian n chiều. N được gọi là số chiều của SOM. Ví dụ N=2: lớp Kohonen là một lưới 2 chiều các nơron. Với N=3: lớp Kohonen là một khối 3 chiều các nơron. Mỗi nơron thuộc lớp Kohonen ngoài các giá đầu vào, đầu ra còn có vector trọng số liên kết với các nơron thuộc lớp đầu vào. Hay nói cách khác, mỗi nơron của lớp Kohonen sẽ có thêm một vector trọng số N chiều. Có thể xem mỗi nơron trong lớp Kohonen như là đại diện cho một cụm với vector trọng số chính là vector trọng tâm của cụm đó. Thật sự điều này không hẳn lúc nào cũng như vậy mà cần có sự linh hoạt trong việc xác định cấu hình (số chiều) và số nơron trong lớp Kohonen, đây chỉ là một gợi ý cho những ai chưa biết về SOM trong cài đặt sau này.

  1. Các hình thức học của mạng nơron

Khái niệm: Học là quá trình thay đổi hành vi của các vật theo một cách nào đó làm cho chúng có thể thực hiện tốt hơn trong tương lai.

Một mạng nơron được huyấn luyện sao cho với một tập các vector đầu vào X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó. Tập X được sử dụng cho huấn luyện mạng được gọi là tập huấn luyện (training set). Các phần tử x thuộc X được gọi là các mẫu huấn luyện (training example). Quá trình huấn luyện bản chất là sự thay đổi các trọng số liên kết của mạng. Trong quá trình này, các trọng số của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ cho ra vector đầu ra y như mong muốn.

Có ba phương pháp học phổ biến là học có giám sát (supervised learning), học không giám sát (unsupervised learning) và học tăng cường (Reinforcement learning):

  •  Học có giám sát: Là quá trình học có sự tham gia giám sát của một “thầy giáo”. Cũng giống như việc ta dạy một em nhỏ các chữ cái. Ta đưa ra một chữ “a” và bảo với em đó rằng đây là chữ “a”. Việc này được thực hiện trên tất cả các mẫu chữ cái. Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi em đó đây là chữ gì?

Với học có giám sát, tập mẫu huấn luyện được cho dưới dạng D = {(x,t) | (x,t) [IRN x RK]}, trong đó: x = (x1, x2, ..., xN) là vector đặc trưng N chiều của mẫu huấn luyện và t = (t1, t2, ..., tK) là vector mục tiêu K chiều tương ứng, nhiệm vụ của thuật toán là phải thiết lập được một cách tính toán trên mạng như thế nào đó để sao cho với mỗi vector đặc trưng đầu vào thì sai số giữa giá trị đầu ra thực sự của mạng và giá trị mục tiêu tương ứng là nhỏ nhất. Chẳng hạn mạng có thể học để xấp xỉ một hàm t = f(x) biểu diễn mối quan hệ trên tập các mẫu huấn luyện (x, t).

Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước. Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao cho với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó.

  •  Học không giám sát: Là việc học không cần có bất kỳ một sự giám sát nào.

Trong bài toán học không giám sát, tập dữ liệu huấn luyện được cho dưới dạng: D = {(x1, x2,.., xN)}, với (x1, x2,.., xN) là vector đặc trưng của mẫu huấn luyện. Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau.

Như vậy với học không giám sát, số lớp phân loại chưa được biết trước, và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại khác nhau.

  •  Học tăng cường: đôi khi còn được gọi là học thưởng-phạt, là sự tổ hợp của cả hai mô hình trên. Phương pháp này cụ thể như sau: với vector đầu vào, quan sát vector đầu ra do mạng tính được. Nếu kết quả được xem là “tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống. Do đó học tăng cường là học theo nhà phê bình, ngược với học có giám sát là học theo thầy giáo.
  1. Một số phương pháp huấn luyện mạng nơron nhân tạo

Có 2 phương pháp huấn luyện mạng nơron đáng quan tâm là:

  • Huấn luyện gia tăng: trọng số và ngưỡng của mạng được cập nhập mỗi khi có dữ liệu vào mạng. Kiểu này ứng dụng trong cả hai mạng tĩnh và động, tuy nhiên thường dùng trong mạng động nhiều hơn, như là những bộ lọc thích ứng.
  • Huấn luyện gia tăng là thay đổi hàm trọng và độ dốc của mạng sau mỗi lần xuất hiện của một phần tử véc tơ đầu vào. Huấn luyện gia tăng đôi khi được xem như huấn luyện trực tuyến hay huấn luyện thích nghi.  Sự huấn luyện gia tăng có thể được áp dụng cho cả mạng tĩnh và mạng động. Tuy nhiên, trong thực tế nó được sử dụng nhiều hơn cho mạng động, ví dụ các bộ lọc thích nghi [4]. 
  • Huấn luyện theo gói: trọng số và ngưỡng của mạng chỉ được cập nhập sau khi tất cả dữ liệu đã vào mạng, dùng trong cả hai mạng tĩnh và động.

Huấn luyện theo gói trong đó các hàm trọng và độ dốc chỉ được cập nhật sau khi tất cả các dữ liệu vào và đích đã được đưa tới, có thể được áp dụng cho cả mạng tĩnh và mạng động [4]. 

 

 

 

Sản phẩm gợi ý

Sản phẩm tương tự