
Có lẽ chúng ta vẫn sẽ cần các nhà khoa học dữ liệu?
Các công cụ AutoML rất được thu hút trong một vài năm qua, cả do những tiến bộ về công nghệ và tiềm năng của chúng được tận dụng bởi ‘ Citizen Data Scientists — Nhà Khoa học Dữ liệu Công dân’. Citizen Data Science, là một khía cạnh thú vị (thường gây tranh cãi) của Khoa học dữ liệu (Data Scientists) nhằm mục đích tự động hóa việc thiết kế các mô hình Học máy (Machine Learning) / Học sâu (Deep Learning)
Trong bài viết này, chúng ta sẽ cố gắng hiểu về AutoML, hứa hẹn của nó và điều gì AutoML có thể làm được ở thời điểm hiện tại?, những lĩnh vực, nơi AutoML không thành công ở thời điểm hiện tại ?, nó chỉ dành cho các Citizen Data Scientists, hay nó cũng có giá trị đối với các Data Scientists lành nghề?
Nội tại của AutoML
Chúng ta hãy bắt đầu với phần high-level cơ bản về học máy (Machine Learning). Hầu hết các mô hình Machine Learning ngày nay đều được giám sát và áp dụng cho nhiệm vụ dự đoán / phân loại. Khi được cung cấp một tập dữ liệu, Nhà khoa học dữ liệu phải trải qua một quy trình vất vả được gọi là trích xuất tính năng và độ chính xác của mô hình phụ thuộc hoàn toàn vào khả năng của Nhà khoa học dữ liệu (Data Scientists) trong việc chọn tập hợp tính năng phù hợp (thuật ngữ ngành gọi là feature engineering). Để đơn giản, bạn có thế hiểu mỗi tính năng có thể được coi là một cột của tập dữ liệu được cung cấp dưới dạng tệp CSV.
Ngay cả khi tập dữ liệu chỉ có một tính năng, quá trình lựa chọn mô hình vẫn đóng một vai trò quan trọng vì các thuật toán khác nhau cần được thử để tìm ra sự phù hợp nhất tùy thuộc vào phân phối tập dữ liệu. Ví dụ: chúng ta hãy xem xét một tập dữ liệu bao gồm hai cột: “Lương” và “Năm kinh nghiệm”. Mục đích là để dự đoán mức lương dựa trên mức kinh nghiệm.
Hình 1 cho thấy một minh họa Hồi quy tuyến tính của tình huống vấn đề. Tuy nhiên, Hồi quy tuyến tính (Linear Regression) thường không hiệu quả, cũng như các kỹ thuật hồi quy khác, ví dụ: Đa thức, Vectơ hỗ trợ, Cây hồi quy, v.v. (Polynomial, Support Vector, Regression Trees, ..) cần được thử để tìm ra sự phù hợp nhất. Sự phù hợp nhất trong trường hợp này tương ứng với sai số dự đoán tối thiểu (độ chính xác của mô hình) được đo theo các số liệu khác nhau. Ví dụ. Trung bình-Bình phương-Lỗi (Mean-Squared-Error MSE); một ví dụ trong đó sẽ là giá trị trung bình của các bình phương độ dài của các đường nối các điểm dữ liệu với đường (hồi quy) trong Hình 1.
Với tập dữ liệu và kiến thức này, một Data Scientists sẽ tiến hành bằng cách viết chương trình để áp dụng các mô hình hồi quy khác nhau trên tập dữ liệu. Sử dụng framework ML, ví dụ: scikit-learning, điều này có nghĩa là viết / sửa đổi một vài dòng mã để triển khai các mô hình và sau đó phân tích độ chính xác của mô hình theo các số liệu lỗi khác nhau
# Training a Linear Regression model
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)# Training a Support Vector Regressor
from sklearn.svm import SVR
regressor = SVR(kernel = ‘rbf’)
regressor.fit(X, y)
Bây giờ bạn đã có được bức tranh rằng quá trình cho đến nay về trích xuất tính năng và lựa chọn mô hình có thể được tự động hóa. Và, đây chính xác là những gì một công cụ AutoML làm.
Với một tập dữ liệu, công cụ AutoML sẽ áp dụng các thuật toán ML đã biết bằng cách sử dụng các tập hợp tính năng và phân phối dữ liệu khác nhau — hiển thị kết quả trên bảng xếp hạng được sắp xếp theo các số liệu lỗi khác nhau (độ chính xác của dự đoán / phân loại).
Bây giờ chúng ta hãy xem xét AutoML trong ngữ cảnh Học sâu (Deep Learning- DL). Ưu điểm của DL là chương trình chọn tính năng do chính nó thiết lập mà không cần giám sát, tức là việc trích xuất tính năng được tự động hóa. Điều này đạt được bằng cách đào tạo các mạng nơron quy mô lớn, được gọi là Deep Neural Nets (DNN) trên các tập dữ liệu có nhãn lớn.
Việc đào tạo một DNN trải qua nhiều lần lặp lại (kỷ nguyên). Mỗi lần chạy trước đó được kết hợp với một vòng phản hồi, trong đó các lỗi phân loại được xác định ở cuối quá trình chạy liên quan đến sự thật cơ bản (tập dữ liệu huấn luyện/đào tạo đã có kết quả) được đưa trở lại các lớp trước đó (ẩn) để điều chỉnh tham số của chúng. trọng số tham số của chúng — ‘backpropagation’.
Một kiến trúc DNN mẫu được minh họa trong Hình 2.
Ở góc độ triển khai, nếu chúng ta muốn viết Neural Network (NN) để giải quyết vấn đề dự đoán ‘Lương nhân viên’ trước đó; Nhà khoa học dữ liệu sẽ viết một cái gì đó giống như đoạn mã dưới đây bằng cách sử dụng khung DL, ví dụ: sứ dụng TensorFlow.
# Initializing the NN
ann = tf.keras.models.Sequential()
# input layer and first hidden layer
ann.add(tf.keras.layers.Dense(units=8, activation=’relu’))
# hidden layer
ann.add(tf.keras.layers.Dense(units=8, activation=’relu’))
# output
ann.add(tf.keras.layers.Dense(units=1, activation=’sigmoid’))
# compilation
ann.compile(optimizer = ‘adam’, loss = ‘binary_crossentropy’, metrics = [‘accuracy’])
# training
ann.fit(X_train, y_train, batch_size = 64, epochs = 50)
Tuy nhiên, DNN rất khó phát triển và đào tạo. Thông thường, các mô hình DL được thiết kế cẩn thận bởi một nhóm các Nhà khoa học Dữ liệu. Quá trình thiết kế DNN theo cách thủ công này rất khó vì không gian tìm kiếm của tất cả các mô hình khả thi có thể lớn theo tổ hợp — một mạng 10 lớp điển hình có thể có ~ 1010 mạng ứng viên! Vì lý do này, quá trình thiết kế mạng thường mất nhiều thời gian và thử nghiệm ngay cả với những người có chuyên môn về DL đáng kể.
Trong thực tế, điều này chuyển thành quá trình thử và sai, thử các kết hợp khác nhau của một số thông số có thể định cấu hình ở trên (in đậm), ví dụ: số lớp ẩn, số lượng tế bào thần kinh trên mỗi lớp, chức năng kích hoạt, trình tối ưu hóa, kích thước lô, số kỷ nguyên đào tạo, v.v. Có một số kiến trúc đã biết, ví dụ: Artificial Neural Networks — ANNs (Prediction), Convolutional Neural Networks — CNNs (Image Classification), Recurrent Neural Networks — RNNs/Long Short-term Memory Networks — LSTMs (Time Series Forecasting); đã được chứng minh là hoạt động tốt cho các loại vấn đề cụ thể (trong ngoặc đơn). Tuy nhiên, ngoài kiến thức này và sự sẵn có của một số NN được đào tạo trước (ví dụ ImageNet để phân loại hình ảnh);quá trình phát triển và đào tạo một NN cho một vấn đề mới — Tìm kiếm kiến trúc thần kinh (NAS) [1] — vẫn còn là một vấn đề mở.
Và, đây là nơi AutoML có tiềm năng tự động hóa Neural Architecture Search (NAS), bằng cách đảm bảo không gian tìm kiếm theo cách tăng tốc với tính toán phân tán và heuristics hiệu quả.
Reinforcement Learning (RL) đã được chứng minh là cách tiếp cận đầy hứa hẹn cho NAS [2], trong đó mạng nơ-ron bộ điều khiển đề xuất kiến trúc mô hình “con”, kiến trúc này sau đó được đào tạo và đánh giá chất lượng cho một nhiệm vụ cụ thể. Phản hồi đó sau đó được sử dụng để thông báo cho người kiểm soát cách cải thiện các đề xuất của họ cho vòng tiếp theo. Quá trình này được lặp lại hàng nghìn lần — tạo ra các kiến trúc mới, kiểm tra chúng và đưa ra phản hồi đó cho bộ điều khiển rút kinh nghiệm. Cuối cùng, mạng điều khiển (controller net) học cách gán xác suất cao cho các khu vực của không gian kiến trúc để đạt được độ chính xác tốt hơn trên một tập dữ liệu xác thực đã được tổ chức
Công cụ AutoML — Hiện đại
Đã tìm hiểu một chút về nội tại của AutoML và hiểu rõ hơn về các pipelines ML / DL; chúng ta hãy xem xét sự trưởng thành của các công cụ AutoML hiện tại.
Công bằng mà nói, AutoML đang ở giai đoạn mà Deep Learning đã có vài năm trở lại đây — kỳ vọng rất cao
Gartner dự kiến rằng “vào năm 2020, hơn 40% nhiệm vụ khoa học dữ liệu sẽ được tự động hóa” (liên kết).
Các nhà phân tích của Forrester trong báo cáo Wave tháng 5 năm 2019 [3] nói rằng “hầu như mọi công ty sẽ có một công cụ AutoML độc lập. Chúng tôi kỳ vọng thị trường này sẽ phát triển đáng kể khi các sản phẩm ngày càng tốt hơn và nhận thức gia tăng về cách các công cụ này phù hợp với bối cảnh khoa học dữ liệu, ML và AI rộng lớn hơn ”. Trong cùng một báo cáo, họ đã xếp DataRobot, H2O.ai và dotData là ba nhà cung cấp AutoML hàng đầu.
CB Insights [4] liệt kê hơn 40 công ty AutoML ngày nay. Ở đây, điều quan trọng cần đề cập là mặc dù việc gắn nhãn một công cụ là AutoML đã trở nên “tuyệt vời” trong những ngày này, không có nhiều sự khác biệt trong các khả năng của AutoML (về thuật toán ML / DL) mà chúng cung cấp.
Phần ‘tự động’ của các công cụ AutoML ngày nay nằm ở khả năng cung cấp nền tảng Khoa học dữ liệu / Máy học ( Data Science/Machine Learning) từ đầu đến cuối — cho phép bạn làm mọi thứ từ phát triển mô hình đến triển khai chúng trên quy mô lớn trên cùng một nền tảng.
Những người thực hành AI / ML sẽ nhận thức được những thách thức khi một mô hình ML / DL được đào tạo và triển khai bởi các nhóm khác nhau trên các nền tảng khác nhau. Vì vậy, các công cụ AutoML ngày nay chủ yếu giúp giải quyết các vấn đề triển khai-đào tạo đầu cuối cho một số thuật toán ML đã biết.
Ngoài ra, trong khi các công cụ AutoML hoàn thiện, ví dụ: DataRobot, có thể chi phí khá đắt; AutoML gần đây đã trở nên khá dễ tiếp cận với các nền tảng đám mây phổ biến hơn cung cấp các khả năng AutoML tích hợp như: Google Cloud’s AutoML, Microsoft Azure’s Machine Learning Service và AWS Sagemaker AutoPilot. Công bằng mà nói, các công cụ này khá hạn chế ở giai đoạn này, chỉ hỗ trợ Dự báo dựa trên hồi quy và Phân loại văn bản cơ bản (Regression based Forecasting và Text Classification). Ví dụ: không ai trong sốchúng hỗ trợ Deep Learning (hoặc NAS) ở giai đoạn này, rất có thể do chi phí tính toán rất cao khi chạy NAS.
Phần kết luận
Để kết thúc, chúng ta hãy quay trở lại câu hỏi ban đầu của mình: “AutoML có nghĩa là sự kết thúc của các Nhà khoa học dữ liệu (Data Scientists), về cơ bản là nhu cầu về các kỹ năng Khoa học dữ liệu chuyên biệt?”
Để trả lời điều này, chúng ta hãy bắt đầu với giao diện người dùng. Nếu theo AutoML, chúng tôi có nghĩa là một công cụ cung cấp excel / csv làm dữ liệu đầu vào, có thể xuất ra một mô hình được đào tạo với độ chính xác hợp lý. Có, các công cụ AutoML hiện tại có thể làm được điều đó ngày nay.
Thách thức nảy sinh khi mô hình cần được cải thiện. Hãy nhớ rằng, DS / ML là một quá trình lặp đi lặp lại. Vấn đề là bạn sẽ hiếm khi gặp phải trường hợp mà bạn nhận được độ chính xác rất cao trên tập dữ liệu đầu tiên mà bạn cung cấp. Có điều gì đó sai nếu bạn làm, hoặc vấn đề của bạn quá tầm thường — 🙂 Vì vậy, vấn đề với AutoML bắt đầu khi nó cần cải thiện một mô hình
Lý do tương tự khiến cho ‘AI có thể giải thích’ trở nên khó khăn [5], cũng được áp dụng ở đây. Công cụ AutoML có hiểu biết rất hạn chế về lý do tại sao một mô hình hoạt động như nó. Nó có thể khám phá sự phân bố dữ liệu đầu vào để chỉ ra một số đặc điểm dữ liệu nhất định có thể được cải thiện. Tuy nhiên, nó sẽ không bao giờ có thể đề xuất thêm dữ liệu mới, ví dụ: thời tiết, vị trí, v.v. sẽ cải thiện độ chính xác của mô hình. Điều này là do nó thiếu kiến thức kinh doanh / miền. Trên cùng một limes, hiện tại nó thiếu bí quyết kỹ thuật để khám phá một kiến trúc mạng nơ-ron hoàn toàn mới. Ví dụ: mặc dù nó có thể đề xuất số lượng lớp ẩn phù hợp cho ANN, nhưng NAS của nó sẽ không thể đề xuất rằng việc thêm ‘bộ nhớ’ sẽ giải quyết vấn đề gradient biến mất của RNN — dẫn đến việc phát hiện ra các LSTM.
Các công cụ AutoML ngày nay chưa sẵn sàng cho các user-cases chiến lược của bạn. Tuy nhiên, chúng có thể cung cấp giá trị đáng kể trong giai đoạn tạo mẫu / MVP và khám phá của bạn trong quá trình phát triển mô hình khoa học dữ liệu doanh nghiệp.
Tóm lại, các công cụ AutoML ngày nay còn lâu mới thay thế được các Data Scientists lành nghề của bạn — bạn vẫn cần họ. Tuy nhiên, chúng có thể hoạt động như một nền tảng DS / ML bổ sung hoặc độc lập cho các Nhà khoa học dữ liệu (Data Scientists), tăng tốc đáng kể công việc của họ bằng cách tự động hóa nhiều giai đoạn khám phá tạo thành một phần của bất kỳ trường hợp sử dụng DS mới nào.
Tham khảo
[1] Neural Architecture Search literature survey, (link)
[2] Google AI: Using Machine Learning to Explore Neural Network Architecture, (link)
[3] Forrester New Wave: Automation-Focused Machine Learning Solutions, Q2 2019, (link)
[4] CB Insights: Artificial Intelligence Trends To Watch In 2020, (link)
[5] D. Biswas: Enterprise AI/ML Governance: Explainability, Bias & Accountability, Analytics Vidhya, 2020 (link).
Bài viết được dịch từ bài của các tác giả Debmalya Biswas