Sau khi kiểm tra dữ liệu thông qua các kỹ thuật thống kê và trực quan hoá, bạn nên chuyển đổi dữ liệu theo cách giúp mô hình huấn luyện hiệu quả hơn. Mục tiêu của chuẩn hoá là biến đổi các tính năng có quy mô tương tự. Ví dụ: hãy xem xét hai điều sau tính năng:
- Tính năng
X
nằm trong khoảng từ 154 đến 24.917.482. - Đối tượng
Y
mở rộng trong phạm vi từ 5 đến 22.
Hai tính năng này có phạm vi rất khác nhau. Quá trình chuẩn hoá có thể thao túng
X
và Y
để chúng nằm trong phạm vi tương tự, có thể từ 0 đến 1.
Chuẩn hoá mang lại các lợi ích sau:
- Giúp các mô hình hội tụ nhanh hơn trong quá trình huấn luyện. Khi các đặc điểm khác nhau có các phạm vi khác nhau, phương pháp hạ gradient có thể "bật lại" và làm chậm quá trình hội tụ. Tuy nhiên, các trình tối ưu hoá nâng cao hơn như Adagrad và Adam sẽ ngăn chặn vấn đề này bằng cách thay đổi tốc độ học hiệu quả theo thời gian.
- Giúp các mô hình suy luận thông tin dự đoán chính xác hơn. Khi các tính năng khác nhau có các phạm vi khác nhau, mô hình thu được có thể đưa ra dự đoán ít hữu ích hơn.
- Giúp tránh "bẫy NaN" khi các giá trị của tính năng quá cao.
NaN là viết tắt của not a number (không phải số). Khi một giá trị trong mô hình vượt quá
giới hạn độ chính xác dấu phẩy động, hệ thống sẽ đặt giá trị thành
NaN
của một số. Khi một số trong mô hình trở thành NaN, các số khác trong mô hình cuối cùng cũng trở thành NaN. - Giúp mô hình biết trọng số thích hợp cho từng tính năng. Nếu không mở rộng tính năng, mô hình này sẽ chú ý quá nhiều các tính năng có phạm vi rộng và không đủ chú ý đến các tính năng có phạm vi hẹp.
Bạn nên chuẩn hoá các đặc điểm dạng số có phạm vi khác nhau (ví dụ: tuổi và thu nhập).
Bạn cũng nên chuẩn hoá một đặc điểm số duy nhất bao gồm nhiều phạm vi, chẳng hạn như city population.
Hãy xem xét hai tính năng sau:
- Giá trị thấp nhất của tính năng
A
là -0,5 và giá trị cao nhất là +0,5. - Giá trị thấp nhất của đối tượng
B
là -5 và giá trị cao nhất là +5.
Tính năng A
và tính năng B
có span tương đối hẹp. Tuy nhiên, span của Tính năng B
rộng hơn 10 lần so với span của Tính năng A
. Vì thế:
- Khi bắt đầu huấn luyện, mô hình này giả định rằng Tính năng
A
gấp 10 lần "quan trọng" hơn so với Tính năngB
. - Quá trình huấn luyện sẽ mất nhiều thời gian hơn dự kiến.
- Mô hình thu được có thể không tối ưu.
Mức độ thiệt hại tổng thể do không chuẩn hoá sẽ tương đối nhỏ; tuy nhiên, bạn vẫn nên chuẩn hoá Tính năng A và Tính năng B theo cùng một tỷ lệ, có thể là từ -1,0 đến +1,0.
Bây giờ, hãy xem xét hai đặc điểm có độ chênh lệch lớn hơn về phạm vi:
- Giá trị thấp nhất của đối tượng
C
là -1 và giá trị cao nhất là +1. - Giá trị thấp nhất của tính năng
D
là +5000 và giá trị cao nhất là +1.000.000.000.
Nếu bạn không chuẩn hoá Tính năng C
và Tính năng D
, mô hình của bạn có thể sẽ không tối ưu. Hơn nữa, quá trình huấn luyện sẽ mất nhiều thời gian hơn để hội tụ hoặc thậm chí không thể hội tụ hoàn toàn!
Phần này trình bày 3 phương pháp chuẩn hoá phổ biến:
- điều chỉnh theo tỷ lệ tuyến tính
- Thang điểm Z
- chia tỷ lệ theo logarit
Phần này cũng đề cập đến việc cắt. Mặc dù không đúng kỹ thuật chuẩn hoá, việc cắt xén có thể chế ngự các đối tượng số phức tạp thành giúp tạo ra mô hình tốt hơn.
Chia độ tuyến tính
Chia tỷ lệ tuyến tính (phổ biến hơn rút gọn thành scaling) nghĩa là chuyển đổi các giá trị dấu phẩy động từ phạm vi tự nhiên của chúng vào phạm vi tiêu chuẩn—thường là từ 0 đến 1 hoặc -1 đến +1.
Việc chuyển tỷ lệ tuyến tính là một lựa chọn phù hợp khi tất cả các điều kiện sau được đáp ứng:
- Giới hạn dưới và giới hạn trên của dữ liệu không thay đổi nhiều theo thời gian.
- Tính năng này có ít hoặc không có điểm ngoại lai và những điểm ngoại lai đó cũng không cực kỳ hiệu quả.
- Tính năng này được phân bố gần như đồng đều trên phạm vi của nó. Tức là biểu đồ sẽ hiển thị các thanh gần như bằng nhau cho hầu hết các giá trị.
Giả sử age
của con người là một tính năng. Điều chỉnh tỷ lệ tuyến tính là một kỹ thuật chuẩn hoá tốt cho age
vì:
- Giới hạn dưới và giới hạn trên gần đúng là từ 0 đến 100.
age
chứa một tỷ lệ phần trăm tương đối nhỏ các giá trị ngoại lai. Chỉ khoảng 0,3% dân số hơn 100 người.- Mặc dù một số độ tuổi nhất định được thể hiện tốt hơn so với các độ tuổi khác, nhưng một tập dữ liệu lớn phải chứa đủ ví dụ về mọi độ tuổi.
Bài tập: Kiểm tra kiến thức
Giả sử mô hình của bạn có một tính năng tên lànet_worth
chứa mạng
giá trị của những người khác nhau. Việc chia tỷ lệ tuyến tính có phải là chuẩn hoá tốt không
cho net_worth
? Tại sao (hoặc tại sao lại không)?
Thang điểm Z
Điểm Z là số độ lệch chuẩn mà một giá trị lấy từ giá trị trung bình. Ví dụ: một giá trị lớn hơn 2 độ lệch chuẩn so với giá trị trung bình sẽ có điểm Z là +2.0. Một giá trị ít hơn 1,5 độ lệch chuẩn so với giá trị trung bình có điểm Z là -1,5.
Biểu thị một đối tượng bằng tỷ lệ điểm Z có nghĩa là lưu trữ giá trị của đối tượng đó Điểm Z trong vectơ đối tượng. Ví dụ: Hình sau đây cho thấy hai biểu đồ dạng thanh:
- Ở bên trái, một phân phối chuẩn cổ điển.
- Ở bên phải, cùng một phân phối được chuẩn hoá theo tỷ lệ điểm Z.
Thang điểm Z cũng là một lựa chọn tốt cho dữ liệu tương tự như được hiển thị trong hình sau đây chỉ có phân phối bình thường khá mơ hồ.
Điểm Z là lựa chọn phù hợp khi dữ liệu tuân theo mức phân phối chuẩn hoặc phân phối khá giống phân phối bình thường.
Xin lưu ý rằng một số phân phối có thể là phân phối chuẩn trong phần lớn phạm vi của chúng, nhưng vẫn chứa các giá trị ngoại lai cực đoan. Ví dụ: gần như tất cả các điểm trong một tính năng net_worth
đều có thể vừa vặn với 3 độ lệch chuẩn, nhưng một vài ví dụ về tính năng này có thể cách trung bình hàng trăm độ lệch chuẩn. Trong những trường hợp này, bạn có thể kết hợp việc điều chỉnh theo điểm Z với một hình thức chuẩn hoá khác (thường là cắt bớt) để xử lý tình huống này.
Bài tập: Kiểm tra kiến thức
Giả sử mô hình của bạn huấn luyện trên một đặc điểm có tên làheight
, chứa chiều cao của 10 triệu phụ nữ trưởng thành. Việc điều chỉnh theo điểm Z có phải là một kỹ thuật chuẩn hoá tốt cho height
không? Tại sao (hoặc tại sao lại không)?
Chia tỷ lệ nhật ký
Tỉ lệ nhật ký tính toán lôgarit của giá trị thô. Về lý thuyết, lôgarit có thể là bất kỳ cơ số nào; trong thực tế, việc điều chỉnh theo lôgarit thường tính toán lôgarit tự nhiên (ln).
Việc điều chỉnh theo quy mô nhật ký sẽ hữu ích khi dữ liệu tuân theo một quy luật phân phối quy luật lũy thừa. Nói một cách đơn giản, sự phân phối theo luật công suất sẽ có dạng như sau:
- Giá trị thấp của
X
có giá trị rất cao củaY
. - Khi giá trị của
X
tăng lên, giá trị củaY
sẽ nhanh chóng giảm xuống. Do đó, giá trịX
ở mức cao có giá trịY
rất thấp.
Xếp hạng phim là một ví dụ điển hình về sự phân phối theo luật năng lượng. Trong hình sau, hãy lưu ý:
- Một số phim có nhiều điểm xếp hạng của người dùng. (Các giá trị thấp của
X
có giá trị cao củaY
.) - Hầu hết các bộ phim đều có rất ít điểm xếp hạng của người dùng. (Giá trị cao của
X
có giá trị thấp củaY
.)
Việc điều chỉnh theo quy mô nhật ký sẽ thay đổi quá trình phân phối, giúp huấn luyện một mô hình sẽ đưa ra dự đoán chính xác hơn.
Ví dụ thứ hai là hoạt động bán sách tuân theo sự phân phối theo luật năng lượng vì:
- Hầu hết các sách đã xuất bản đều bán một số lượng nhỏ, có thể là một hoặc hai trăm bản.
- Một số cuốn sách bán được số lượng bản in vừa phải, lên đến hàng nghìn bản.
- Chỉ một vài bán chạy nhất sẽ bán được hơn một triệu bản.
Giả sử bạn đang huấn luyện một mô hình tuyến tính để tìm mối quan hệ giữa, giả sử, ảnh bìa sách với doanh số bán sách. Việc huấn luyện mô hình tuyến tính dựa trên các giá trị thô sẽ phải tìm thông tin về bìa sách trên những cuốn sách bán được một triệu bản mạnh hơn 10.000 bản so với bìa sách chỉ bán 100 bản. Tuy nhiên, việc điều chỉnh theo tỷ lệ logarit cho tất cả số liệu bán hàng sẽ giúp công việc này trở nên khả thi hơn nhiều. Ví dụ: nhật ký của 100 là:
~4.6 = ln(100)
trong khi logarit của 1.000.000 là:
~13.8 = ln(1,000,000)
Do đó, logarit của 1.000.000 chỉ lớn hơn logarit của 100 khoảng ba lần. Bạn có thể tưởng tượng rằng ảnh bìa của một cuốn sách bán chạy sẽ mạnh mẽ hơn (theo một cách nào đó) gấp ba lần so với ảnh bìa của một cuốn sách bán rất ít.
Cắt
Tạo đoạn video là một kỹ thuật nhằm giảm thiểu ảnh hưởng của các điểm ngoại lai cực đoan. Tóm lại, việc cắt đoạn video thường viết hoa (giảm) giá trị của các điểm ngoại lai xuống một giá trị tối đa cụ thể. Cắt đoạn là một một ý tưởng kỳ lạ nhưng có thể rất hiệu quả.
Ví dụ: hãy tưởng tượng một tập dữ liệu chứa một đặc điểm có tên là roomsPerPerson
, đại diện cho số phòng (tổng số phòng chia cho số người lưu trú) của nhiều ngôi nhà. Biểu đồ sau đây cho thấy hơn
99% giá trị tính năng phù hợp với phân phối chuẩn (ước tính trung bình
1,8 và độ lệch chuẩn là 0,7). Tuy nhiên, tính năng này chứa một số giá trị ngoại lai, một số giá trị ngoại lai cực đoan:
Làm cách nào để giảm thiểu ảnh hưởng của những giá trị ngoại lai cực đoan đó? Vâng, biểu đồ này không phải là một biểu đồ phân phối đều, biểu đồ phân phối chuẩn hoặc biểu đồ phân phối theo luật lũy thừa. Điều gì xảy ra nếu bạn chỉ cần giới hạn hoặc cắt giá trị tối đa của
roomsPerPerson
với giá trị tuỳ ý, chẳng hạn như 4.0?
Việc cắt giá trị tính năng ở mức 4.0 không có nghĩa là mô hình của bạn bỏ qua tất cả các giá trị lớn hơn 4.0. Đúng hơn, điều đó có nghĩa là tất cả các giá trị lớn hơn hơn 4.0 bây giờ trở thành 4.0. Điều này giải thích rằng ngọn đồi đặc biệt ở 4.0. Mặc dù ngọn đồi đó, bộ tính năng được điều chỉnh theo tỷ lệ hiện hữu ích hơn dữ liệu gốc.
Đợi một chút! Bạn có thực sự có thể giảm mọi giá trị ngoại lai xuống một ngưỡng trên tuỳ ý không? Có.
Bạn cũng có thể cắt bớt các giá trị sau khi áp dụng các hình thức chuẩn hoá khác. Ví dụ: giả sử bạn sử dụng thang điểm Z, nhưng một vài điểm ngoại lai có giá trị tuyệt đối lớn hơn nhiều so với 3. Trong trường hợp này, bạn có thể:
- Cắt bớt các điểm Z-score lớn hơn 3 để trở thành chính xác 3.
- Cắt bớt các điểm số Z nhỏ hơn -3 để trở thành chính xác -3.
Tính năng cắt giúp mô hình của bạn không lập chỉ mục quá mức trên dữ liệu không quan trọng. Tuy nhiên, một số giá trị ngoại lai thực sự quan trọng, vì vậy, hãy cắt bớt các giá trị một cách cẩn thận.
Tóm tắt các kỹ thuật chuẩn hoá
Kỹ thuật chuẩn hoá | Công thức | Trường hợp sử dụng |
---|---|---|
Chia độ tuyến tính | $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ | Khi đối tượng này được phân phối đồng đều trên một phạm vi cố định. |
Thang điểm Z | $$ x' = \frac{x - μ}{σ}$$ | Khi sự phân phối tính năng không chứa các điểm ngoại lai quá mức. |
Chia tỷ lệ theo logarit | $$ x' = log(x)$$ | Khi tính năng tuân theo định luật nguồn. |
Cắt đoạn | Nếu $x > max$, hãy đặt $x' = max$ Nếu $x < min$, hãy đặt $x' = min$ |
Khi đối tượng có chứa các điểm ngoại lai cực kỳ nghiêm trọng. |
Bài tập: Kiểm tra kiến thức
Giả sử bạn đang phát triển một mô hình dự đoán
năng suất dựa trên nhiệt độ đo được bên trong trung tâm dữ liệu.
Hầu như tất cả giá trị temperature
trong tập dữ liệu đều rơi vào
từ 15 đến 30 (độ C), trừ những trường hợp ngoại lệ sau:
- Một hoặc hai lần mỗi năm, vào những ngày cực nóng, một vài giá trị từ 31 đến 45 được ghi lại trong
temperature
. - Mỗi điểm thứ 1.000 trong
temperature
được đặt thành 1.000 thay vì nhiệt độ thực tế.
Đâu sẽ là kỹ thuật chuẩn hoá hợp lý cho
temperature
?
Các giá trị 1.000 bị sai sót và nên được xoá thay vì bị cắt bớt.
Các giá trị trong khoảng từ 31 đến 45 là các điểm dữ liệu hợp lệ. Bạn nên cắt bớt các giá trị này, giả sử rằng tập dữ liệu không chứa đủ ví dụ trong phạm vi nhiệt độ này để huấn luyện mô hình nhằm đưa ra dự đoán chính xác. Tuy nhiên, trong quá trình suy luận, lưu ý rằng mô hình đã cắt sẽ đưa ra dự đoán giống nhau cho nhiệt độ 45 và nhiệt độ 35.