Skip to main content

2 posts tagged with "history"

View All Tags

Simple Explanation - Phương pháp trực quan hóa dữ liệu nhiều chiều t-SNE visualization

· 7 min read
Dang Quach
AI Researcher

Khi thực hiện các dự án Data Science, Visualized dữ liệu là một phần quan trọng để hiểu rõ hơn về dữ liệu và tìm ra các xu hướng, mối quan hệ giữa các biến, tuy nhiên việc visualized dữ liệu nhiều chiều là một thách thức lớn hơn nữa 99% dữ liệu chúng ta là dữ liệu nhiều chiều, khi con người bị giới hạn bởi không gian 3 chiều, việc visualized dữ liệu cao hơn 3 chiều là một thách thức lớn hơn nữa, và đây là nơi t-SNE ra đời.

Hãy tưởng tượng bạn có một bộ dữ liệu về khách hàng với hàng trăm đặc điểm (tuổi, thu nhập, số lần mua hàng, thời gian xem trang, v.v.). Đây là dữ liệu "nhiều chiều" và chúng ta không thể nào vẽ nó trên một biểu đồ 2D hay 3D thông thường để xem các nhóm khách hàng tương tự nhau trông như thế nào.

t-SNE (t-Distributed Stochastic Neighbor Embedding) ra đời để giải quyết chính xác vấn đề này.

Mục tiêu cốt lõi của t-SNE: Tạo ra một "bản đồ" 2D (hoặc 3D) từ dữ liệu nhiều chiều của bạn, sao cho các điểm dữ liệu gần nhau trong không gian nhiều chiều cũng sẽ được đặt gần nhau trên bản đồ 2D.

Hãy coi nó như một người vẽ bản đồ thiên văn. Thay vì nhìn lên bầu trời 3D bao la, họ vẽ các ngôi sao lên một bản đồ 2D phẳng. Mục tiêu của họ là các ngôi sao thuộc cùng một chòm sao (ví dụ: chòm Thần Nông) phải được gom lại gần nhau trên bản đồ để chúng ta có thể dễ dàng nhận ra chúng.

Intro

Cách hoạt động của t-SNE (Step-by-Step)

Bước 1: Đo lường sự "thân thiết" trong không gian nhiều chiều (Thế giới gốc)

Đầu tiên, t-SNE xem xét từng điểm dữ liệu và đo lường sự tương đồng của nó với tất cả các điểm khác. Nhưng nó không dùng khoảng cách Euclid thông thường. Thay vào đó, nó suy nghĩ theo kiểu xác suất.

  • Với mỗi điểm dữ liệu A, t-SNE sẽ tính toán một xác suất P(B|A) - tức là xác suất mà A sẽ "chọn" B làm hàng xóm của nó.
  • Xác suất này được tính dựa trên một phân phối Gaussian (phân phối chuẩn). Nếu điểm B ở rất gần A, xác suất A chọn B làm hàng xóm sẽ rất cao. Ngược lại, nếu B ở xa, xác suất sẽ rất thấp.
  • Tham số Perplexity (Độ phức tạp): Khi thực hiện bước này, bạn phải cung cấp một tham số gọi là perplexity. Bạn có thể hiểu nôm na nó là "số lượng hàng xóm gần mà mỗi điểm cần quan tâm".
    • Perplexity thấp (ví dụ: 5): Mỗi điểm chỉ quan tâm đến vài "người bạn thân" ở ngay sát nó.
    • Perplexity cao (ví dụ: 50): Mỗi điểm sẽ nhìn ra một "vòng tròn quan hệ" rộng hơn.
    • Việc chọn perplexity phù hợp (thường từ 5 đến 50) là rất quan trọng để có được kết quả tốt.

Sau bước này, chúng ta có một ma trận xác suất thể hiện mức độ "thân thiết" của tất cả các cặp điểm trong không gian nhiều chiều ban đầu.

Bước 2: Tạo một "bản đồ" ngẫu nhiên ở không gian 2D (Thế giới mới)

Ban đầu, t-SNE sẽ sắp xếp toàn bộ các điểm dữ liệu của bạn một cách hoàn toàn ngẫu nhiên lên một biểu đồ 2D. Lúc này, biểu đồ trông rất lộn xộn và chưa có ý nghĩa gì.

Bước 3: Đo lường sự "thân thiết" trên bản đồ 2D

Tương tự như Bước 1, t-SNE lại tính toán một ma trận xác suất mới cho các điểm trên bản đồ 2D này.

Tuy nhiên, có một sự khác biệt cực kỳ quan trọng:

  • Thay vì dùng phân phối Gaussian, ở đây t-SNE dùng phân phối Student's t-distribution (đây chính là chữ "t" trong t-SNE).
  • Tại sao lại dùng t-distribution? Phân phối này có một đặc điểm là "đuôi dày" (heavy tails). Điều này có nghĩa là nó cho phép các điểm ở khoảng cách tương đối xa nhau trên bản đồ 2D vẫn có một xác suất nhỏ là hàng xóm của nhau. Việc này giúp tạo ra "khoảng trống" giữa các cụm dữ liệu, làm cho chúng được tách biệt và rõ ràng hơn trên biểu đồ cuối cùng, thay vì bị dồn cục vào giữa.

Bước 4: Điều chỉnh bản đồ 2D cho đến khi nó "giống" với thế giới gốc

Đây là bước cuối cùng và kỳ diệu nhất. Bây giờ chúng ta có hai bản đồ xác suất:

  1. Bản đồ xác suất P từ không gian nhiều chiều gốc (rất chính xác).
  2. Bản đồ xác suất Q từ bản đồ 2D ngẫu nhiên (hoàn toàn sai).

Mục tiêu của t-SNE là di chuyển các điểm trên bản đồ 2D sao cho bản đồ xác suất Q trở nên giống nhất có thể với bản đồ xác suất P.

  • Nó sử dụng một thuật toán tối ưu (gradient descent) để giảm thiểu sự khác biệt giữa hai phân phối xác suất này (sử dụng một thước đo gọi là KL-divergence).
  • Hãy tưởng tượng nó như một trò chơi "nóng-lạnh". Thuật toán sẽ khẽ "xê dịch" một điểm trên bản đồ 2D.
    • Nếu hành động đó làm cho Q giống P hơn (nóng lên), nó sẽ giữ lại sự thay đổi đó.
    • Nếu không, nó sẽ thử dịch chuyển theo hướng khác.
  • Quá trình này được lặp lại hàng trăm hoặc hàng ngàn lần. Dần dần, các điểm có xác suất là hàng xóm cao trong không gian gốc sẽ bị "kéo" lại gần nhau trên bản đồ 2D, và các điểm không liên quan sẽ bị "đẩy" ra xa nhau.
DKL(PQ)=xP(x)logP(x)Q(x)D_{KL}(P \parallel Q) = \sum_{x} P(x) \log \frac{P(x)}{Q(x)}

Cuối cùng, các điểm sẽ ổn định tại một vị trí mà ở đó, cấu trúc "hàng xóm" trên bản đồ 2D phản ánh tốt nhất cấu trúc "hàng xóm" trong thế giới dữ liệu nhiều chiều ban đầu. Kết quả là một biểu đồ đẹp mắt nơi các cụm dữ liệu hiện ra rất rõ ràng.

Những lưu ý quan trọng khi sử dụng t-SNE

  1. Chỉ quan tâm đến các cụm (Clusters): t-SNE làm rất tốt việc gom nhóm các điểm tương tự lại với nhau. Đây là sức mạnh lớn nhất của nó.
  2. Không diễn giải khoảng cách giữa các cụm: Khoảng trống giữa cụm A và cụm B trên biểu đồ t-SNE không có ý nghĩa về mặt khoảng cách thực tế. Đừng kết luận rằng "cụm A xa cụm B gấp đôi cụm C".
  3. Không diễn giải kích thước của các cụm: t-SNE có xu hướng làm cho kích thước của các cụm trở nên tương đương nhau trên biểu đồ. Một cụm dày đặc trong thực tế có thể có diện tích bằng một cụm thưa thớt trên biểu đồ t-SNE.
  4. Đây là công cụ trực quan hóa, không phải thuật toán phân cụm: Bạn dùng t-SNE để nhìn xem dữ liệu có khả năng được chia thành bao nhiêu cụm, sau đó bạn nên dùng các thuật toán khác như K-Means hoặc DBSCAN để thực sự gán nhãn cho các cụm đó.

Long Blog Post

· 7 min read
Dang Quach
AI Researcher

Lịch Sử Của khoa học

Khoa học là một lĩnh vực rộng lớn, đóng góp quan trọng vào quá trình phát triển của xã hội và con người. Trên chặng đường lịch sử, khoa học đã trải qua nhiều giai đoạn tiến hóa, từ những đóng góp ban đầu của các nền văn minh cổ đại đến những đổi mới mang tính cách mạng trong thời đại công nghệ hiện nay.

Khoa học trong thời kỳ cổ đại

Khoa học xuất hiện từ rất sớm trong lịch sử nhân loại, được thể hiện qua những đóng góp của Ai Cập cổ đại, Lưỡng Hà, Hy Lạp và La Mã. Tại Hy Lạp, những nhà tư tưởng như Aristoteles, Euclid và Ptolemy đã đề ra các nguyên lý về logic, hình học và thiên văn học. Trong khi đó, người Ai Cập đã phát triển các phương pháp đo đạc và y học sơ khai. Tại Lưỡng Hà, hệ thống số học và thiên văn học cũng đạt những bước tiến đáng kể, đặt nền móng cho nhiều khám phá sau này.

Thời kỳ Trung cổ và Phục hưng

Trong thời Trung cổ, khoa học tiếp tục tiến bộ nhưng chủ yếu dưới sự ảnh hưởng của tôn giáo và triết học. Tuy nhiên, các nhà khoa học Ấn Độ đã đóng góp vào sự phát triển của số học, với những nghiên cứu về số không và hệ thập phân. Trung Quốc, bên cạnh những phát minh vĩ đại như la bàn, giấy và thuốc súng, còn phát triển các nguyên lý về y học và thiên văn học, giúp mở rộng hiểu biết về cơ thể con người và vũ trụ.

Thời kỳ Phục hưng đánh dấu sự trỗi dậy mạnh mẽ của khoa học với sự xuất hiện của những tư tưởng mới. Những nghiên cứu về giải phẫu của Andreas Vesalius và phát minh kính thiên văn của Galileo Galilei đã mở ra những hướng nghiên cứu hoàn toàn mới, đặt nền móng cho khoa học hiện đại.

Thời kỳ khoa học hiện đại

Cuối thế kỷ 16 và đầu thế kỷ 17, khoa học bước vào giai đoạn hiện đại với cuộc cách mạng khoa học do Galileo Galilei, Johannes Kepler và Isaac Newton lãnh đạo. Đây là giai đoạn các nguyên lý khoa học được thiết lập một cách có hệ thống, dựa trên thí nghiệm và phương pháp khoa học. Những khám phá như định luật chuyển động của Newton và lý thuyết hấp dẫn đã đặt nền tảng cho vật lý cổ điển, trong khi sự phát triển của hóa học và sinh học cũng tạo ra những ảnh hưởng sâu rộng.

Khoa học trong thế kỷ 19 và 20

Thế kỷ 19 và 20 chứng kiến sự phát triển nhảy vọt với những tiến bộ trong công nghiệp, y học và vật lý. Cuộc cách mạng công nghiệp đã mở đường cho nhiều phát minh, bao gồm điện, động cơ đốt trong, và sau này là máy tính và internet. Cùng với đó, những khám phá trong lĩnh vực vật lý như thuyết tương đối của Albert Einstein và cơ học lượng tử đã làm thay đổi hoàn toàn cách con người hiểu về vũ trụ.

Trong y học, những tiến bộ như vacxin, kháng sinh và công nghệ cấy ghép nội tạng đã kéo dài tuổi thọ trung bình và giảm tỷ lệ tử vong đáng kể. Sự phát triển của di truyền học, đặc biệt là khám phá cấu trúc DNA của Watson và Crick, đã mở ra kỷ nguyên mới cho công nghệ sinh học và y học cá nhân hóa.

Tầm quan trọng của khoa học

Khoa học không chỉ giúp con người hiểu rõ hơn về thế giới xung quanh, mà còn cung cấp những giải pháp cho những vấn đề lớn như biến đổi khí hậu, bệnh tật và năng lượng. Những tiến bộ trong khoa học đã giúp cải thiện chất lượng cuộc sống, từ việc phát triển các công nghệ xanh đến cải thiện hệ thống y tế và giao thông.

Trong tương lai, khoa học sẽ tiếp tục đóng vai trò then chốt trong các lĩnh vực như trí tuệ nhân tạo, năng lượng tái tạo và thám hiểm vũ trụ. Những nghiên cứu về vật lý lượng tử, công nghệ nano và y học tái tạo hứa hẹn sẽ mở ra nhiều cơ hội đột phá, giúp con người vươn xa hơn trong việc khám phá và phát triển, không chỉ trên Trái Đất mà còn cả ngoài không gian.

Trong thời kỳ cổ đại, khoa học được phát triển chủ yếu ở Hy Lạp cổ đại và Ai Cập cổ đại, với các nhà khoa học như Aristoteles, Ptolemy và Euclid. Những người này đã đưa ra nhiều khái niệm cơ bản về toán học, hình học và lý thuyết về vũ trụ, giúp con người hiểu rõ hơn về thế giới xung quanh.

Sau đó, khoa học phát triển trong thời kỳ Trung cổ, đặc biệt là ở Trung Quốc và Ấn Độ, với các nhà khoa học như Aryabhata và Zhang Heng. Các nhà khoa học này đã đưa ra nhiều khái niệm mới về toán học, thiên văn học và khoa học địa chất, mở rộng kiến thức của con người trong các lĩnh vực này.

Trong thời kỳ đại địa chất, khoa học đã tiến bộ rất nhiều trong việc hiểu biết về trái đất và lịch sử của nó, đặc biệt là trong việc giải thích các hiện tượng tự nhiên như động đất và núi lửa. Trong thế kỷ 17, khoa học hiện đại bắt đầu phát triển ở châu Âu, với các nhà khoa học như Galileo Galilei, Isaac Newton và René Descartes. Những người này đã đưa ra nhiều khái niệm mới về vật lý, toán học và triết học, giúp con người hiểu rõ hơn về thế giới.

Trong thế kỷ 19, khoa học và công nghệ tiếp tục phát triển với tốc độ nhanh chóng, với sự ra đời của các phát minh như đèn điện, máy tính và động cơ đốt trong. Những phát minh này đã mở ra một thời đại mới cho con người, giúp chúng ta tiết kiệm thời gian và năng lượng, và giúp chúng ta tiến thêm một bước đến với cuộc cách mạng công nghiệp.

Trong thế kỷ 20, khoa học tiếp tục phát triển và trở thành một phần quan trọng của cuộc sống hiện đại, với sự ra đời của các phát minh như internet, máy bay và điện thoại di động. Những phát minh này đã làm thay đổi hoàn toàn cách thức giao tiếp, sản xuất và tiêu dùng của con người, giúp chúng ta tiết kiệm thời gian và tiền bạc, và mở ra nhiều cơ hội mới cho tương lai.

Hiện nay, khoa học đang tiếp tục phát triển và mở rộng ra nhiều lĩnh vực khác nhau, từ y học đến khoa học vũ trụ và công nghệ sinh học. Những phát minh mới này đang đưa con người tiến thêm một bước đến với tương lai, giúp chúng ta giải quyết các vấn đề khó khăn và nâng cao chất lượng cuộc sống. Khoa học đã đóng góp rất nhiều vào sự phát triển của xã hội và con người, và sẽ tiếp tục là một lĩnh vực quan trọng trong tương lai.

September 4, 2023