Logo Zephyrnet

Dạy AI để phân loại các mẫu chuỗi thời gian với dữ liệu tổng hợp

Ngày:

Dạy AI để phân loại các mẫu chuỗi thời gian với dữ liệu tổng hợp

Cách xây dựng và đào tạo mô hình AI để xác định các mẫu bất thường phổ biến khác nhau trong dữ liệu chuỗi thời gian.


chúng ta muốn đạt được gì?

 
 
Chúng tôi muốn đào tạo một nhân viên hoặc mô hình AI có thể làm điều gì đó như thế này,


Dạy AI để phân loại các mẫu chuỗi thời gian với dữ liệu tổng hợp
nguồn hình ảnh: Được soạn thảo bởi tác giả bằng cách sử dụng này Hình ảnh Pixabay (Sử dụng miễn phí)

Sự khác biệt, dị thường, sự thay đổi

 
 
Cụ thể hơn một chút, chúng tôi muốn đào tạo một tác nhân (hoặc mô hình) AI để xác định / phân loại dữ liệu chuỗi thời gian cho,

  • phương sai thấp / trung bình / cao
  • tần số bất thường (phần nhỏ hoặc phần lớn các dị thường)
  • quy mô bất thường (các dị thường quá xa so với bình thường hoặc gần)
  • sự thay đổi tích cực hoặc tiêu cực trong dữ liệu chuỗi thời gian (khi có một số điểm bất thường)

Nhưng, chúng tôi không muốn làm phức tạp mọi thứ

 
 
Tuy nhiên, chúng tôi không muốn thực hiện nhiều kỹ thuật tính năng hoặc tìm hiểu các thuật toán chuỗi thời gian phức tạp (ví dụ: ARIMA) và thuộc tính (ví dụ: tính thời vụ, tính ổn định) cho việc này.

Chúng tôi chỉ muốn cung cấp dữ liệu chuỗi thời gian của mình (có nhãn thích hợp) vào một số loại máy 'học' được giám sát có thể tìm hiểu những danh mục này (phương sai cao hoặc thấp, quá ít hoặc quá nhiều điểm bất thường, v.v.) từ dữ liệu thô.

Một thư viện Python hữu ích

 
 
Tại sao chúng ta không tận dụng một thư viện Python có thể tự động thực hiện loại phân loại này cho chúng ta và tất cả những gì chúng ta phải làm là ném dữ liệu vào đó bằng cách sử dụng định dạng Numpy / Pandas tiêu chuẩn?

Thậm chí tốt hơn nếu thư viện đó có giao diện của gói Scikit-learning yêu thích của chúng tôi!

Chúng tôi tìm thấy các tính năng như vậy trong thư viện xinh đẹp - tslearning. Nói một cách đơn giản, nó là một gói Python cung cấp các công cụ học máy để phân tích chuỗi thời gian. Gói này được xây dựng dựa trên (và do đó phụ thuộc vào) scikit-learnnumpy và scipy thư viện.



Nguồn hình ảnh: tài liệu tslearn

 

Tại sao (và như thế nào) Dữ liệu Tổng hợp?

 
 
Như tôi đã viết trong bài báo này - “ tập dữ liệu tổng hợp là một kho dữ liệu được tạo theo chương trình. Vì vậy, nó không được thu thập bởi bất kỳ cuộc khảo sát hoặc thử nghiệm thực tế nào. Do đó, mục đích chính của nó là đủ linh hoạt và phong phú để giúp người thực hành ML tiến hành các thử nghiệm hấp dẫn với các thuật toán phân loại, hồi quy và phân cụm khác nhau".

Tạo dữ liệu tổng hợp - một kỹ năng cần có đối với các nhà khoa học dữ liệu mới
 

… Và sau đó mở rộng lập luận trong bài viết này - “Chuỗi thời gian tổng hợp cũng không ngoại lệ - nó giúp một nhà khoa học dữ liệu thử nghiệm với các phương pháp thuật toán khác nhau và chuẩn bị cho việc triển khai trong đời thực theo những cách mà chỉ bộ dữ liệu thực không thể thực hiện được."

Tạo chuỗi thời gian tổng hợp với các chữ ký bất thường trong Python
 

Về cơ bản, chúng tôi muốn tổng hợp dữ liệu chuỗi thời gian với các điểm bất thường và các mẫu khác, tự động gắn nhãn chúng và đưa chúng vào tslearn các thuật toán để dạy tác nhân AI của chúng tôi về các mẫu này.

Đặc biệt, nếu chúng ta muốn sử dụng các bộ phân loại dựa trên học sâu (như được cung cấp bởi tslearn), thì chúng tôi có thể cần một lượng dữ liệu đáng kể bao gồm tất cả các biến thể có thể có, những dữ liệu này có thể không có sẵn trong các tình huống thực tế. Đây là lúc dữ liệu tổng hợp có ích.

Hãy bắt đầu cuộc phiêu lưu sau đó!

Dạy cho tác nhân AI về các mẫu chuỗi thời gian

 
 
Sổ tay demo có thể được tìm thấy ở đây trong repo Github của tôi. Quá trình chuyển đổi dữ liệu chuỗi thời gian sang định dạng phù hợp để đào tạo bởi tslearn mô hình khá đơn giản và được minh họa trong sổ tay. Ở đây, chúng tôi chủ yếu tập trung vào các dạng kết quả phân loại khác nhau dưới dạng hình ảnh minh họa.

Phương sai cao hay thấp trong dữ liệu?

 
 
Tôi xử lý rất nhiều dữ liệu công nghiệp, tức là nơi mà một đội quân cảm biến đang tạo ra một luồng dữ liệu kỹ thuật số không ngừng nghỉ từ máy móc, nhà máy, người vận hành và quy trình kinh doanh.

Việc phát hiện xem luồng dữ liệu chuỗi thời gian có phương sai cao hay thấp có thể rất quan trọng đối với nhiều quyết định quy trình ở hạ nguồn. Vì vậy, chúng tôi bắt đầu ở đó.

Quy trình rất đơn giản,

  • tạo dữ liệu tổng hợp bằng cách sử dụng SyntheticTS mô-đun (được thảo luận trong bài viết của tôi ở đây và có thể được tìm thấy ở đây)
  • tạo nhãn lớp tương ứng để khớp với chuỗi dữ liệu Numpy / Pandas này (Lưu ý tự động tạo nhãn dựa trên việc đưa vào kiến ​​thức miền)
  • chuyển đổi dữ liệu chuỗi tổng hợp thành tslearn đối tượng chuỗi thời gian (mảng)
  • lưu trữ chúng trong tập dữ liệu đào tạo
  • cung cấp dữ liệu đào tạo đến bộ phân loại chuỗi thời gian phù hợp từ tslearn. Chúng tôi đã chọn TimeSeriesMLPClassifier phương pháp được xây dựng trên đỉnh phương pháp perceptron nhiều lớp quen thuộc của Scikit-learning về cơ bản triển khai một mạng học sâu được kết nối đầy đủ.



Quy trình đào tạo với dữ liệu Tổng hợp, nguồn: Được soạn thảo hoàn toàn bởi tác giả

 

Sản phẩm TimeSeriesMLPClassifier có tất cả chuông và còi của trình phân loại MLP Scikit-learning tiêu chuẩn,

  • kích thước lớp ẩn và số lượng tế bào thần kinh
  • chức năng kích hoạt
  • trình giải quyết / trình tối ưu hóa (ví dụ: 'Adam')
  • tỷ lệ học
  • kích thước lô
  • khoan dung
  • cài đặt động lượng
  • tiêu chí dừng sớm




Về cơ bản, chúng tôi muốn tổng hợp dữ liệu chuỗi thời gian với các điểm bất thường và các mẫu khác, tự động gắn nhãn chúng và đưa chúng vào tslearn các thuật toán để dạy tác nhân AI của chúng tôi về các mẫu này.


Để ngắn gọn, trong sổ ghi chép, tôi không hiển thị việc phân chia đào tạo / kiểm tra nhưng điều đó phải được thực hiện như một quy trình công việc khoa học dữ liệu tiêu chuẩn cho các ứng dụng thực tế.

Chúng tôi có thể vẽ đường cong tổn thất tiêu chuẩn sau khi đào tạo và thực hiện tất cả các loại điều chỉnh siêu thông số để làm cho hiệu suất trở nên đỉnh cao.



Tuy nhiên, hiển thị điều chỉnh trình phân loại học sâu không phải là mục tiêu của bài viết này. Chúng tôi muốn tập trung vào phần cuốitạm dừng tức là nó đã đưa ra loại quyết định phân loại nào.

Dưới đây là một số kết quả thử nghiệm ngẫu nhiên.



Tạo nhãn - thủ công hay tự động?

 
 
Toàn bộ điểm của bài báo là chỉ ra rằng người ta có thể tránh được việc dán nhãn thủ công bằng dữ liệu tổng hợp.

Tôi đã tạo hàng trăm chuỗi thời gian tổng hợp với các phương sai hoặc dịch chuyển ngẫu nhiên để đào tạo bộ phân loại. Vì chúng được tạo theo chương trình nên chúng cũng có thể được gắn nhãn tự động.

Điểm này sẽ rõ ràng khi bạn nhìn thấy mã tạo trong Notebook thực tế. Đây là ý tưởng cho việc đào tạo phương sai.



Sự bất thường - phân số cao hay thấp của dữ liệu?

 
 
Xác định các điểm bất thường là không đủ. Trong hầu hết các tình huống thực tế, bạn cũng phải xác định tần suất và kiểu xuất hiện của chúng.

Điều này là do các hệ thống phân tích dữ liệu công nghiệp thường chịu trách nhiệm tạo ra các cảnh báo khi chúng phát hiện đủ các điểm bất thường trong luồng dữ liệu. Do đó, để quyết định có tăng cảnh báo hay không, họ cần phải có ý tưởng tốt về việc số lượng bất thường có đại diện cho một phần đáng kể của dữ liệu bình thường hay không.

Bạn không muốn đưa ra quá nhiều cảnh báo sai, phải không? Điều đó sẽ có hại cho danh tiếng của một hệ thống dựa trên AI.

Vì vậy, chúng tôi đã trải qua cùng một quá trình đào tạo một mô hình AI về phần nhỏ các điểm bất thường trong dữ liệu chuỗi thời gian. Đây là kết quả kiểm tra ngẫu nhiên,

Dị thường - chúng có độ lớn như thế nào?

 
 
Trong nhiều trường hợp, chúng tôi cũng quan tâm đến việc phân loại dữ liệu đến có mức độ bất thường cao / trung bình / thấp. Đối với phân tích dữ liệu công nghiệp, tính năng này có thể cho biết trạng thái của máy hoặc sự bất thường của quá trình.

Chúng tôi đã thực hiện theo quy trình đào tạo tương tự như trên và thu được những kết quả này,



Sự thay đổi hoặc thay đổi dữ liệu - ở đâu và như thế nào?

 
 
Một hoạt động cổ điển khác trong phân tích dữ liệu công nghiệp là phát hiện độ lệch / dịch chuyển trong dữ liệu cảm biến đến từ một máy. Có thể có vô số lý do,

  • máy có thể là agings,
  • công thức / cài đặt quy trình bị thay đổi đột ngột mà không ghi nhật ký thích hợp,
  • một thành phần phụ nhỏ có thể bị suy giảm theo thời gian

Điểm mấu chốt là một hệ thống do AI điều khiển phải có thể xác định các danh mục này - ít nhất là về sự thay đổi tích cực hoặc tiêu cực và điểm xuất hiện của chúng, tức là cho dù sự trôi dạt bắt đầu sớm hay muộn trong vòng đời của quy trình.


Xác định các điểm bất thường là không đủ. Trong hầu hết các tình huống thực tế, bạn cũng phải xác định tần suất và kiểu xuất hiện của chúng. Điều này là do các hệ thống phân tích dữ liệu công nghiệp thường chịu trách nhiệm tạo cảnh báo khi chúng phát hiện đủ các điểm bất thường trong luồng dữ liệu


Trong trường hợp này, chúng tôi đã thêm vị trí của ca (sớm hoặc muộn trong toàn bộ khoảng thời gian) vào danh sách kết hợp. Vì vậy, chúng tôi có các lớp sau để đào tạo dữ liệu trên,

  • chuyển dịch tích cực sớm
  • chuyển dịch tích cực muộn
  • sự thay đổi tiêu cực sớm
  • ca muộn âm

Do sự phức tạp tăng lên này, chúng tôi cần tạo ra một lượng lớn dữ liệu tổng hợp hơn so với các thí nghiệm trước. Đây là kết quả,



Tổng kết

 
 
Phân loại chuỗi thời gian là một chủ đề rất thú vị đối với nhiều trường hợp sử dụng tuyệt vời. Trong bài viết này, chúng tôi đã chỉ ra, cách bằng cách sử dụng dữ liệu tổng hợp, chúng tôi có thể đào tạo các mô hình AI (mạng học sâu với một vài lớp được kết nối đầy đủ) cho một chiều dữ liệu chuỗi thời gian bắt chước các quy trình công nghiệp hoặc các luồng cảm biến.

Đặc biệt, chúng tôi tập trung vào dạy mô hình AI về các đặc tính bất thường khác nhau và các mẫu trôi dạt dữ liệu vì những phân loại này là những chỉ số rất quan trọng về sự xuống cấp của máy móc. Nói tóm lại, chúng tạo thành nền tảng của cái gọi là phân tích tiên đoán trong lĩnh vực của Công nghiệp 4.0 or Sản xuất thông minh.

Chúng tôi hy vọng rằng việc sử dụng dữ liệu tổng hợp để phân tích dự đoán dựa trên AI sẽ phát triển đáng kể trong tương lai.

Bạn có thể kiểm tra tác giả GitHub kho cho mã, ý tưởng và tài nguyên trong học máy và khoa học dữ liệu. Nếu bạn cũng như tôi, đam mê AI / máy học / khoa học dữ liệu, xin vui lòng thêm tôi vào LinkedIn or theo dõi tôi trên Twitter.

 
Tiểu sử: Tirthajyoti Sarkar là Giám đốc Khoa học Dữ liệu / ML tại Adapdix Corp. Ông thường xuyên đóng góp cho các ấn phẩm như KDnuggets và TDS về các chủ đề đa dạng liên quan đến khoa học dữ liệu và học máy. Ông là tác giả của sách khoa học dữ liệu và đóng góp cho phần mềm nguồn mở. Tirthajyoti có bằng Tiến sĩ trong EE và đang làm việc với bằng MS về Phân tích dữ liệu tính toán. Gửi email cho anh ấy theo địa chỉ tirthajyoti tại gmail [dot] com.

Nguyên. Đăng lại với sự cho phép.

Liên quan:


PlatoAi. Web3 được mô phỏng lại. Khuếch đại dữ liệu thông minh.
Nhấn vào đây để truy cập.

Nguồn: https://www.kdnuggets.com/2021/10/teaching-ai-classify-time-series-patterns-synthetic-data.html

tại chỗ_img

Tin tức mới nhất

tại chỗ_img