Dữ liệu số: Chuẩn hoá

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 XY để 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ư AdagradAdam 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ăng B.
  • 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.
Hình 4. Hai biểu đồ: cả hai đều thể hiện mức phân phối chuẩn với
           cùng một phân phối. Biểu đồ đầu tiên chứa dữ liệu thô có giá trị trung bình là 200 và độ lệch chuẩn là 30. Thứ hai
           biểu đồ tần suất chứa phiên bản có điểm Z của
           có giá trị trung bình bằng 0 và độ lệch chuẩn bằng 1.
Hình 4. Dữ liệu thô (bên trái) so với điểm Z (bên phải) cho một phân phối chuẩn.

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ồ.

Hình 5. Hai biểu đồ có hình dạng giống nhau, mỗi biểu đồ thể hiện
            lên một cao nguyên và sau đó đi xuống tương đối nhanh, sau đó là
            giảm dần. Một biểu đồ minh hoạ
            phân phối dữ liệu thô; biểu đồ khác minh hoạ cho
            phân phối dữ liệu thô khi được chuẩn hoá theo tỷ lệ điểm Z.
            Các giá trị trên trục X của hai biểu đồ rất khác nhau.
            Biểu đồ dữ liệu thô trải rộng từ miền 0 đến 29.000, trong khi
            biểu đồ tỷ lệ điểm Z nằm trong khoảng từ -1 đến khoảng +4,8
Hình 5. Dữ liệu thô (bên trái) so với tỷ lệ điểm Z (bên phải) cho một phân phối chuẩn không cổ điển.

Đ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ủa Y.
  • Khi giá trị của X tăng lên, giá trị của Y 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ủa Y.)
  • 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ủa Y.)

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.

Hình 6. Hai biểu đồ so sánh dữ liệu thô với nhật ký dữ liệu thô.
            Biểu đồ dữ liệu thô cho thấy nhiều điểm xếp hạng của người dùng ở đầu, theo sau là một đuôi dài. Biểu đồ nhật ký có mức phân phối đồng đều hơn.
Hình 6. So sánh bản phân phối thô với nhật ký của phân phối đó.

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:

Hình 7. Biểu đồ phòngPerPerson trong đó gần như tất cả các giá trị
            được tập trung từ 0 đến 4, nhưng có một cái đuôi dài verrrrry
            lên đến 17 phòng/người
Hình 7. Chủ yếu là bình thường, nhưng không hoàn toàn bình thường.

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?

Biểu đồ roomsPerPerson trong đó tất cả các giá trị nằm trong khoảng từ 0 đến
            4.0. Biểu đồ có hình chuông, nhưng có một đỉnh bất thường ở 4,0
Hình 8. Các giá trị của tính năng bị cắt bớt ở phiên bản 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ứcTrườ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

Kỹ thuật nào phù hợp nhất để chuẩn hoá một đặc điểm có phân phối sau đây?

Biểu đồ thanh cho thấy một cụm dữ liệu có các giá trị trong khoảng từ 0 đến 200.000. Số điểm dữ liệu tăng dần trong phạm vi từ 0 đến 100.000, sau đó giảm dần từ 100.000 xuống 200.000.

Điều chỉnh theo điểm Z
Các điểm dữ liệu thường tuân theo phân phối chuẩn, do đó, điểm Z việc điều chỉnh theo tỷ lệ sẽ buộc chúng vào phạm vi từ –3 đến +3.
Chia độ tuyến tính
Xem lại các nội dung thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.
Chia tỷ lệ nhật ký
Xem lại nội dung thảo luận về các kỹ thuật chuẩn hoá trên trang này rồi thử lại.
Cắt đoạn
Xem lại các nội dung thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.

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ắt bớt các giá trị ngoại lai trong khoảng từ 31 đến 45, nhưng xoá các giá trị ngoại lai có giá trị là 1.000

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.

Cắt bỏ tất cả các giá trị ngoại lai
Xem lại các nội dung thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.
Xoá tất cả các điểm ngoại lai
Xem lại các nội dung thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.
Xoá các giá trị ngoại lai từ 31 đến 45, nhưng cắt bớt các giá trị ngoại lai có giá trị là 1.000.
Xem lại các nội dung thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.