Kết quả của các mô hình này là các hàm logic đơn giản chẳng hạn như “ a OR b” hay “a AND b” [7] Những tiến bộ của máy tính đầu những năm 1950 giúp cho việc mô hình hóa các nguyên lý của
Trang 11
MỞ ĐẦU
Mạng nơron nhân tạo ANN (Artificial Nơron Networks) là một mô phỏng xử lý thông tin, được nghiên cứu ra từ hệ thống thần kinh của sinh vật, giống như bộ não để xử lý thông tin Nó bao gồm số lượng lớn các mối gắn kết cấp cao để xử lý các yếu tố làm việc trong mối liên hệ giải quyết vấn đề rõ ràng ANN giống như con người, được học bởi kinh nghiệm, lưu những kinh nghiệm hiểu biết và sử dụng trong những tình huống phù hợp và quan trọng hơn hết, con người có khả năng sáng tạo
Những năm gần đây mô phỏng ANN xuất hiện và phát triển Các nghiên cứu ứng dụng đã được thực hiện trong các ngành: điện, điện tử, kỹ thuật chế tạo, y học, quân sự, kinh tế Một trong những ứng dụng kinh điển của mạng nơron là bài toán nhận dạng mẫu, ở đó mỗi một mẫu là một tập hợp (hay một vector) các tham số biểu thị các thuộc tính của quá trình vật lý nào đó Ngoài sức mạnh vốn có, mạng nơron còn thể hiện ưu điểm của mình trong việc nhận dạng thông qua khả năng mềm dẻo, dễ thích nghi với môi trường Chính vì vậy, có thể coi mạng nơron trước tiên là một công cụ để nhận dạng
Như chúng ta đã biết ngày nay Internet đã đóng một vai trò vô cùng quan trọng trong đời sống xã hội cùng với vô vàn những dịch vụ tiện ích Một trong những dịch vụ mà Internet mang lại là dịch vụ thư điện tử, đó là một phương tiện giao tiếp rất đơn giản, tiện lợi, rẻ và hiệu quả giữa mọi người trong cộng đồng sử dụng dịch vụ Internet Tuy nhiên chính vì những lợi ích của dịch vụ thư điện tử mang lại mà số lượng thư trao đổi trên Internet ngày càng tăng, và đa số trong số những thư đó là thư rác (spam) Thư rác thường được gửi với số lượng lớn, không được người dùng mong đợi gây phiền toái
và khó chịu cho người dùng, làm giảm tốc độ truyền Internet và tốc độ xử lý của email server, gây thiệt hại lớn về kinh tế Thư rác đang là một trong
Trang 22
những vấn đề nhức nhối của xã hội Nhiều phương pháp, công cụ lọc thư rác
đã được đề xuất Tuy nhiên, các công cụ lọc thư rác đó hiện nay vẫn tỏ ra chưa thực sự hiệu quả
Chính vì các lý do nêu trên cùng với sự gợi ý của thầy giáo tôi nhận thấy nghiên cứu về mạng nơron là một hướng nghiên cứu quan trọng, mới mẻ
và có nhiều triển vọng Đồng thời áp dụng mạng nơron để giải quyết bài toán phân loại thư rác là một hướng tiếp cận khoa học có hiệu quả Do đó tôi chọn
đề tài: “Nghiên cứu, ứng dụng mạng nơron trong bài toán phân loại thư rác”
Nội dung luận văn gồm:
Chương 1: Mô hình mạng nơron nhân tạo
Trình bày những lý thuyết cơ bản về mô hình mạng nơron như: lịch sử
ra đời và phát triển của mạng nơron, khái niệm mạng nơron, các loại mô hình mạng nơron, các đặc trưng của mạng, các phương pháp huấn luyện mạng nơron, phương pháp học có giám sát Các vấn đề và ứng dụng của mạng nơron
Chương 2: Bài toán phân loại thư rác
Giới thiệu về thư rác: khái niệm, đặc điểm, phân loại, và ảnh hưởng của thư rác; các phương pháp phân loại thư rác: phân loại theo từ khóa, Bayesian, SpamAssassin, danh sách trắng/đen, dựa vào vị trí bộ lọc, xác nhận danh tính người gửi và dựa trên mạng xã hội
Chương 3: Thử nghiệm hệ thống ngăn chặn spam mail
Trình bày thử nghiệm hệ thống ngăn chặn spam mail bằng phương pháp học máy thông qua phần mềm mã nguồn mở Popfile Cách chuẩn hóa tín hiệu đầu vào, đầu ra…Chương trình minh họa kết quả huấn luyện mạng, đánh giá, nhận xét
Trang 33
CHƯƠNG 1: MÔ HÌNH MẠNG NƠRON NHÂN TẠO
1.1 Khái niệm mạng nơron
về tâm lý học với sự liên kết các noron thần kinh Sự kiện đầu tiên đánh dấu
sự ra đời của mạng nơron nhân tạo diễn ra vào năm 1943 khi nhà thần kinh học Warren McCulloch và nhà toán học Walter Pitts viết bài báo mô tả cách thức các nơron hoạt động Họ cũng đã tiến hành xây dựng một mạng nơron đơn giản bằng các mạch điện Các nơron của họ được xem như là các thiết bị nhị phân với ngưỡng cố định Kết quả của các mô hình này là các hàm logic đơn giản chẳng hạn như “ a OR b” hay “a AND b” [7]
Những tiến bộ của máy tính đầu những năm 1950 giúp cho việc mô hình hóa các nguyên lý của những lý thuyết liên quan tới cách thức con người suy nghĩ đã trở thành hiện thực Nathanial Rochester sau nhiều năm làm việc tại các phòng thí nghiệm nghiên cứu của IBM đã có những nỗ lực đầu tiên để
mô phỏng một mạng nơron
Năm 1956 dự án Dartmouth nghiên cứu về trí tuệ nhân tạo (Artificial Intelligence) đã mở ra thời kỳ phát triển mới cả trong lĩnh vực trí tuệ nhân tạo lẫn mạng nơron Tác động tích cực của nó là thúc đẩy hơn nữa sự quan tâm của các nhà khoa học về trí tuệ nhân tạo và quá trình xử lý ở mức đơn giản của mạng nơron trong bộ não con người
Trang 44
Những năm tiếp theo của dự án Dartmouth, John von Neumann đã đề xuất việc mô phỏng các nơron đơn giản bằng cách sử dụng rơle điện áp hoặc đèn chân không Nhà sinh học chuyên nghiên cứu về nơron Frank Rosenblatt cũng bắt đầu nghiên cứu về Perceptron năm 1958 Sau thời gian nghiên cứu này Perceptron đã được cài đặt trong phần cứng máy tính và được xem như là mạng nơron lâu đời nhất còn được sử dụng đến ngày nay Perceptron một tầng rất hữu ích trong việc phân loại một tập các đầu vào có giá trị liên tục vào một trong hai lớp Perceptron tính tổng có trọng số các đầu vào, rồi trừ tổng này cho một ngưỡng và cho ra một trong hai giá trị mong muốn có thể Tuy nhiên Perceptron còn rất nhiều hạn chế, những hạn chế này đã được chỉ
ra trong cuốn sách về Perceptron của Marvin Minsky và Seymour Papert của MIT (Massachurehs Insritute of Technology) viết năm 1969 đã chứng minh
nó không dùng được cho các hàm logic phức
Năm 1959, Bernard Widrow và Marcian Hoff thuộc trường đại học Stanford đã xây dựng mô hình ADALINE ( ADAptive LINear Elements) và MADALINE (Multiple ADAptive LINear Elements) Các mô hình này sử dụng quy tắc học Least-Mean-Squares ( LMS : Tối thiểu bình phương trung bình) MADALINE là mạng nơron đầu tiên được áp dụng để giải quyết một bài toán thực tế Nó là một bộ lọc thích ứng có khả năng loại bỏ tín hiệu dội lại trên đường dây điện thoại Ngày nay mạng nơron này vẫn được sử dụng trong các ứng dụng thương mại
Năm 1973 Von der Marlsburg: đưa ra quá trình học cạnh tranh và self – organization Năm 1974 Paul Werbos đã phát triển và ứng dụng phương pháp học lan truyền ngược (back-propagation) Tuy nhiên phải mất một vài năm thì phương pháp này mới trở lên phổ biến Các mạng lan truyền ngược được biết đến nhiều nhất và được áp dụng rộng dãi nhất nhất cho đến ngày nay
Trang 55
Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức các cuộc họp hàng năm
về mạng nơron ứng dụng trong tin học (Nơron Networks for Computing) Năm 1987, hội thảo quốc tế đầu tiên về mạng neuron của Viện các kỹ
sư điện và điện tử IEEE (Institute of Electrical and Electronic Engineer) đã thu hút hơn 1800 người tham gia Tính từ năm 1987 đến nay, hàng năm thế giới đều mở hội nghị toàn cầu chuyên ngành nơron IJCNN (International Joit Conference on Nơron Networks)
Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứu ứng dụng mạng nơron để giải quyết các bài toán thực tế được diễn ra ở khắp mọi nơi Các ứng dụng mạng nơron ra đời ngày càng nhiều và ngày càng hoàn thiện hơn Điển hình là các ứng dụng: xử lý ngôn ngữ (Language Processing), nhận dạng ký tự (Character Recognition), nhận dạng tiếng nói (Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc dữ liệu (Data Filtering),…
1.1.1.1 So sánh mạng nơron với máy tính truyền thống
Các mạng nơron có cách tiếp cận khác trong giải quyết vấn đề so với máy tính truyền thống Các máy tính truyền thống sử dụng cách tiếp cận theo hướng giải thuật, tức là máy tính thực hiện một tập các chỉ lệnh để giải quyết một vấn đề Vấn đề được giải quyết phải được biết và phát biểu dưới dạng một tập chỉ lệnh không nhập nhằng Những chỉ lệnh này sau đó phải được chuyển sang một chương trình ngôn ngữ bậc cao và chuyển sang mã máy để máy tính có thể hiểu được
Trừ khi các bước cụ thể mà máy tính cần tuân theo được chỉ ra rõ ràng, máy tính sẽ không làm được gì cả Điều đó giới hạn khả năng của các máy tính truyền thống ở phạm vi giải quyết các vấn đề mà chúng ta đã hiểu và biết chính xác cách thực hiện Các máy tính sẽ trở lên hữu ích hơn nếu chúng có
Trang 6ra cách giải quyết vấn đề, thao tác của nó không thể dự đoán được [7]
Các mạng nơron và các máy tính truyền thống không cạnh tranh nhau
mà bổ sung cho nhau Có những nhiệm vụ thích hợp hơn với máy tính truyền thống, ngược lại có những nhiệm vụ lại thích hợp hơn với các mạng nơron Thậm chí rất nhiều nhiệm vụ đòi hỏi các hệ thống sử dụng tổ hợp cả hai cách tiếp cận để thực hiện được hiệu quả cao nhất Thông thường một máy tính truyền thống được sử dụng để giám sát mạng nơron
1.1.1.2 Nơron sinh học
Hình 1.1 Mạng nơron sinh học
Trang 77
Do nhu cầu ngày càng cao trong việc giải quyết các vấn đề phức tạp và
do bản chất của con người là không muốn bằng lòng với hiện tại mà luôn muốn vươn tới những gì cao hơn, hoàn thiện hơn, những thuật ngữ “mạng nơron” hoặc “mạng nơron nhân tạo” hoặc “xử lý song song và phân tán” đã ra đời Các thuật ngữ đó nói đến một ngành kỹ thuật mới đòi hỏi kiến thức từ nhiều ngành khoa học khác nhau như toán học, vật lý học, hóa học, sinh vật học, tâm lý học, thần kinh học,… Tất cả chỉ nhằm làm sao tạo ra những chiếc máy tính hoạt động giống như “bộ não” của chính chúng ta
1.1.1.3 Chức năng, tổ chức và hoạt động của bộ não con người
Bộ não có cấu trúc nhiều lớp Lớp bên ngoài thường thấy là các nếp nhăn, là lớp có cấu tạo phúc tạp nhất Đây có thể là nơi kiểm soát và phát sinh các hành động phức tạp như nghe, nhìn, tư duy,…
Trang 88
c) Hoạt động
Mặc dù mỗi nơron (có thể xem như phần tử xử lý hay phần tử tính) có tốc độ rất chậm so với tốc độ các cổng logic silicon trong các vi chip 10-3 giây so với 10-10 giây, nhưng do mỗi nơron liên kết với khoảng 104 nơron khác, cho nên, khi hoạt động thì bộ não hoạt động một cách tổng lực và đạt hiệu quả cao Nói một cách khác là phần tử của não hoạt động một cách song song và tương tác hết sức tinh vi phức tạp Hiệu quả hoạt động thường rất cao, nhất là trong các vấn đề phức tạp
Tóm lại, bộ não có chức năng hết sức quan trọng đối với đời sống của con người Cấu tạo của bộ não rất phức tạp, tinh vi bởi được tạo thành từ mạng nơron có hàng chục tỉ tế bào với mức độ liên kết giữa các nơron là rất cao Hơn nữa, bộ não còn được chia thành các vùng và các lớp khác nhau Bộ não hoạt động dựa trên cơ chế hoạt động song song của các nơron tạo nên bộ não đó
Lý thuyết về mạng nơron nhân tạo, hay gọi tắt là “mạng nơron”, được xây dựng xuất phát từ một thực tế là bộ não con người luôn luôn thực hiện các tính toán một cách hoàn toàn khác so với các máy tính số Có thể coi bộ não
là một máy tính hay một hệ thống xử lý thông tin song song, phi tuyến và cực
kỳ phức tạp Nó có khả năng tự tổ chức các bộ phận cấu thành của nó, như là các tế bào thần kinh (neuron) hay các khớp nối thần kinh (synapse), nhằm thực hiện một số tính toán như nhận dạng mẫu và điều khiển vận động nhanh hơn nhiều lần các máy tính nhanh nhất hiện nay Sự mô phỏng bộ não con người của mạng nơron là dựa trên cơ sở một số tính chất đặc thù rút ra từ các nghiên cứu về thần kinh sinh học
Trang 9- Phần thứ nhất: Thân phần tử hay soma (hoặc cell body) Nhân của
nơron được đặt ở đây
- Phần thứ hai: Các dendrite Đây chính là các mạng dạng cây của các
dây thần kinh để nối các soma với nhau
- Phần thứ ba: axon Đây là một nối kết, hình trụ dài và mang các tín
hiệu từ đó ra ngoài Phần cuối của axon được chia thành nhiều nhánh nhỏ Mỗi nhánh nhỏ (cả của dendrite và axon) kết thúc trong một cơ quan nhỏ hình
củ hành được gọi là synapte mà tại đây các nơron đưa các tín hiệu của nó vào các nơron khác Những điểm tiếp nhận với các synapte trên các nơron khác có thể ở các dendrite hay chính soma
Trang 10Các synapses đóng vai trò rất quan trọng trong sự học tập Khi chúng ta học tập thì hoạt động của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữa các nơron Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và các synapses ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các nơron càng nhiều, càng nhạy bén
1.1.2 Mạng Nơron nhân tạo
1.1.2.1 Nơron nhân tạo
Nơron nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra
Mỗi đầu vào đến từ một liên kết Đặc trưng của nơron là một hàm kích hoạt phi tuyến chuyển đổi tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành
Trang 1111
tín hiệu đầu ra Hàm kích hoạt này đảm bảo tính chất phi tuyến cho tính toán
của mạng nơron
Hình 1.3 Mô hình một nơron nhân tạo
Hình 1.4 Sự tương đương giữa nơron sinh học và nơron nhân tạo [12]
Các thành phần cơ bản của một nơron nhân tạo bao gồm:
Tập các đầu vào: Là các tín hiệu vào (input signals) của nơron, các tín
hiệu này thường được đưa vào dưới dạng một vector N chiều
Trang 1212
Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là
trọng số liên kết – Synaptic weight) Trọng số liên kết giữa tín hiệu vào thứ j với nơron k thường được kí hiệu là wkj Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng Các trọng số liên kết chính là các tham số
tự do cơ bản của mạng nơron Các trọng số này có thể được thay đổi nhằm thích nghi với môi trường xung quanh
Bộ tổng (Summing function): Thường dùng để tính tổng của tích các
đầu vào với trọng số liên kết của nó
Ngưỡng (còn gọi là một độ lệch -bias): Ngưỡng này thường được đưa
vào như một thành phần của hàm truyền Hệ số điều chỉnh b có tác dụng tăng lên hoặc giảm đi đầu vào thực của hàm truyền tùy theo hàm truyền dương hay
âm
Hàm truyền (Transfer function) : Hay còn được gọi là hàm kích
hoạt, hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơron Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho Thông thường, phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1] hoặc [-1, 1] Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán và kinh nghiệm của người thiết
kế mạng Một số hàm truyền thường sử dụng trong các mô hình mạng nơron được đưa ra trong bảng 1.2
Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa
là một đầu ra
Dưới dạng công thức toán học, chúng ta có thể mô tả một nơron k bằng cặp công thức sau:
Trang 13Hệ số hiệu chỉnh bk là một tham số ngoài của neuron nhân tạo k Chúng ta có thể thấy được sự có mặt của nó trong công thức (1.2) Một cách tương đương, chúng ta có thể tổ hợp các công thức (1.1) và (1.2) như sau:
về hình thức nhưng tương tự về bản chất toán học
Trang 1414
Hình 1.5 Mô hình phi tuyến thứ hai của một mạng nơron
Bảng 1.1 Một số hàm kích hoạt cơ bản trong mạng nơron
a = 1 với n 0 Hardlims a -1 với n < 0
Trang 15n n
a = 0 với các nơron còn lại
1.1.2.2 Mạng nơron nhân tạo
Các mạng nơron nhân tạo (Artificial nơron networks – ANN), cũng còn được gọi là “Các hệ thống xử lý song song phân bố” (Parallel distribute processing systems), là một hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay còn gọi là nơron) tựa như nơron thần kinh của não người Các phần tử này hoạt động song song và được nối với nhau bởi các liên kết nơron Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt hoặc ức chế giữa các nơron
Các trọng số là phương tiện để lưu trữ thông tin dài hạn trong mạng nơron Nhiệm vụ của quá trình huấn luyện mạng là cập nhật các trọng số đó khi có thêm thông tin về mẫu học Hay nói một cách khác, các trọng số đều
Trang 1616
được điều chỉnh sao cho quan hệ vào ra của mạng sẽ mô phỏng hoàn toàn phù hợp với môi trường đang xem xét
Hình 1.6 Sơ đồ đơn giản về một mạng nơron nhân tạo [5]
Mô hình mạng nơron ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn (hidden)
và lớp xuất (output) Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập
và chuyển vào mạng
Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp (ta gọi là tổng trọng số) và chuyển kết quả cho các nút trong lớp ẩn Lớp đó được gọi là “lớp ẩn” vì các nút trong lớp này chỉ liên lạc với các nút trong lớp nhập và lớp xuất Chỉ có người thiết kế mạng mới biết lớp này (người sử dụng không biết lớp này)
Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong lớp ẩn Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc
1.2 Đặc trưng của mạng nơron
1.2.1 Tính phi tuyến
Trang 1717
Một nơron có thể tính toán một cách tuyến tính hay phi tuyến Một mạng nơron cấu thành bởi các nơron phi tuyến thì cũng sẽ có tính phi tuyến Hơn nữa, điều đặc biệt là tính phi tuyến này được phân tán trên toàn mạng Tính phi tuyến là một thuộc tính rất quan trọng, nhất là khi các cơ chế vật lý sinh ra các tín hiệu đầu vào (ví dụ tín hiệu tiếng nói) vốn là phi tuyến
1.2.2 Tính chất tương ứng đầu vào, đầu ra
Mặc dù khái niệm “học” (hay “huấn luyện”) chưa được bàn đến nhưng
để hiểu được mối quan hệ đầu vào-đầu ra của mạng nơron, chúng ta sẽ đề cập
sơ qua về khái niệm này Một mô hình học phổ biến được gọi là “học có thầy” (hay “học có giám sát”), liên quan đến việc thay đổi các trọng số liên kết của mạng nơron bằng việc áp dụng một tập hợp các mẫu tích luỹ Mỗi một mẫu bao gồm một tín hiệu đầu vào và một đầu ra mong muốn tương ứng Các trọng số liên kết của mạng được biến đổi sao cho có thể cực tiểu hoá sự sai khác giữa đầu ra mong muốn và đầu ra thực sự của mạng theo một tiêu chuẩn thống kê thích hợp Sự tích luỹ của mạng được lặp lại với nhiều ví dụ trong tập hợp cho tới khi mạng đạt tới một trạng thái ổn định mà ở đó không có một
sự thay đổi đáng kể nào của các trọng số liên kết Các ví dụ tích luỹ được áp dụng trước có thể được áp dụng lại trong thời gian của phiên tích luỹ nhưng theo một thứ tự khác Như vậy, mạng nơron học từ các ví dụ bằng cách xây dựng nên một tương ứng đầu vào - đầu ra cho vấn đề cần giải quyết
1.2.3 Tính chất thích nghi
Các mạng nơron có một khả năng mặc định là có thể biến đổi các trọng
số liên kết tuỳ theo sự thay đổi của môi trường xung quanh Đặc biệt, một mạng nơron đã được tích luỹ để hoạt động trong một môi trường xác định có thể được tích luỹ lại một cách dễ dàng khi có những thay đổi nhỏ của các điều kiện môi trường
Trang 1818
1.2.4 Tính chất đưa ra lời giải có bằng chứng
Trong ngữ cảnh phân loại mẫu, một mạng nơron có thể được thiết kế để đưa ra thông tin không chỉ về mẫu được phân loại, mà còn về sự tin cậy của quyết định đã được thực hiện Thông tin này có thể được sử dụng để loại bỏ các mẫu mơ hồ hay nhập nhằng
1.2.5 Tính chất chấp nhận sai sót
Một mạng nơron, được cài đặt dưới dạng phần cứng, vốn có khả năng chấp nhận lỗi, hay khả năng tính toán thô (chứ không nhạy cảm lỗi) Tức là, tính năng của mạng nơron chỉ thoái hoá (chứ không đổ vỡ) khi có những điều kiện hoạt động bất lợi Ví dụ, nếu một nơron hay các liên kết kết nối của nó bị hỏng, việc nhận dạng lại một mẫu được lưu trữ sẽ suy giảm về chất lượng Tuy nhiên, do bản chất phân tán của thông tin lưu trữ trong mạng nơron, sự hỏng hóc cũng được trải ra trên toàn mạng Như vậy, về cơ bản, trong trường hợp này một mạng nơron sẽ thể hiện một sự thoái hoá về tính năng hơn là sự
đổ vỡ trầm trọng
1.2.6 Khả năng cài đặt VLSI (Very-Large-Scale-Intergrated)
Bản chất song song đồ sộ của một mạng nơron làm cho mạng nơron đó rất nhanh trong tính toán đối với một số công việc Đặc tính này cũng làm cho một mạng nơron có khả năng phù hợp trong việc cài đặt sử dụng kỹ thuật Very-large-scale-intergrated (VLSI) Kỹ thuật này cho phép xây dựng những mạch cứng tính toán song song quy mô lớn Chính vì vậy, ưu điểm nổi bật của VLSI là mang lại những phương tiện hữu hiệu để có thể xử lý được những hành vi có độ phức tạp cao
1.2.7 Tính chất đồng dạng trong phân tích và thiết kế
Trang 1919
Về cơ bản, các mạng nơron có tính chất chung như là các bộ xử lý thông tin Điều này áp dụng cho tất cả các lĩnh vực có liên quan tới việc ứng dụng mạng nơron Đặc tính này thể hiện ở một số điểm như sau:
Các nơron, dưới dạng này hoặc dạng khác, biểu diễn một thành phần chung cho tất cả các mạng nơron
Tính thống nhất này đem lại khả năng chia sẻ các lý thuyết và các thuật toán học trong nhiều ứng dụng khác nhau của mạng nơron
Các mạng tổ hợp (modular) có thể được xây dựng thông qua một sự tích hợp các mô hình khác nhau
1.3 Phân loại mạng nơron nhân tạo
1.3.1 Phân loại theo kiểu liên kết nơron
Ta có mạng nơron truyền thẳng và nơron mạng quy hồi:
- Mạng truyền thẳng, các nơron đi theo một hướng nhất định tạo thành
đồ thị không có chu trình như trong hình 1.7 Chu trình có các đỉnh là các nơron, còn các cạnh là các liên kết giữa chúng
Hình 1.7 Mạng truyền thẳng
Trang 20Hình 1.8 Mạng quy hồi 1.3.2 Một số loại mạng nơron điển hình
a) Các mạng dẫn tiến (feedforward) đơn mức
Trong một mạng nơron phân mức, các nơron được tổ chức dưới dạng các mức Với dạng đơn giản nhất của mạng phân mức, mạng có một mức đầu vào gồm các nút nguồn chiếu trực tiếp tới mức đầu ra gồm các nơron
Trang 2121
Mức đầu vào Mức đầu ra
Hình 1.9 Mạng tiến với một mức nơron Như vậy, mạng thực sự là không có chu trình Mạng nơron trong hình 1.9 minh họa trường hợp ba nút đối với cả mức đầu ra và đầu vào Một mạng như vậy được gọi là một mạng đơn mức Mạng được gọi là “đơn mức” tức là chỉ có một mức, chính là mức đầu ra gồm các nút tính toán (các nơron) Chúng ta không tính mức đầu vào của các nút nguồn vì không có tính toán nào được thực hiện ở đây
b) Các mạng dẫn tiến đa mức
Lớp thứ hai của một mạng nơron dẫn tiến được phân biệt bởi sự có mặt của một hay nhiều mức ẩn Các nút tính toán của mức ẩn được gọi là các nơron ẩn hay các đơn vị ẩn (thuật ngữ “ẩn” ở đây mang ý nghĩa là không tiếp xúc với môi trường) Chức năng của các nơron ẩn là can thiệp vào giữa đầu vào và đầu ra của mạng một cách hữu hiệu Bằng việc thêm một vài mức ẩn, mạng có khả năng rút ra được các thống kê bậc cao của tín hiệu đầu vào Khả năng các nơron ẩn rút ra được các thống kê bậc cao đặc biệt có giá trị khi mức đầu vào có kích thước lớn
Các nút nguồn trong mức đầu vào của mạng cung cấp các phần tử của vector đầu vào, chúng tạo nên các tín hiệu đầu vào cho các nơron (các nút tính
Trang 2222
toán) trong mức thứ hai (mức ẩn thứ nhất) Các tín hiệu đầu ra của mức thứ hai được sử dụng như các đầu vào cho mức thứ ba, và như cứ vậy cho phần còn lại của mạng Về cơ bản, các nơron trong mỗi mức của mạng có các đầu vào của chúng là các tín hiệu đầu ra của chỉ mức đứng liền trước nó (điều này
có thể khác trong thực tế cài đặt) Tập hợp các tín hiệu đầu ra của các nơron trong mức đầu ra của mạng tạo nên đáp ứng toàn cục của mạng đối với các vector đầu vào được cung cấp bởi các nút nguồn của mức đầu vào
Mạng nơron trong hình 1.10 được gọi là kết nối đầy đủ Tại đó, tất cả các nút trong mỗi mức của mạng được nối với tất cả các nút trong mức tiếp sau Nếu một số kết nối không tồn tại trong mạng, chúng ta nói rằng mạng là kết nối không đầy đủ
Trang 2323
Trái với mạng nơron dẫn tiến , mạng nơron quy hồi là những mô hình với hai luồng dữ liệu có hướng Trong khi mạng dẫn tiến truyền dữ liệu theo một đường thẳng thì mạng nơron quy hồi có ít nhất một phản hồi từ những nơron xử lý sau quay trở lại các nơron xử lý trước đó
Hình 1.11 Mạng hồi quy không có nơron ẩn và không có vòng lặp tự phản hồi
Hình 1.12 Mạng hồi quy có các nơron ẩn
Sự có mặt của các vòng lặp phản hồi, trong cả cấu trúc hồi quy có một ảnh hưởng sâu sắc đến khả năng học của mạng và đến tính năng của nó Hơn nữa, các vòng lặp phản hồi bao hàm việc sử dụng các nhánh đặc biệt gồm có
Trang 2424
các phần tử đơn vị trễ (ký hiệu là z-1), thể hiện một hành vi phi tuyến động theo thời gian (cùng với giả sử rằng mạng neuron bao gồm các đơn vị phi tuyến)
1.4 Xây dựng mạng nơron
Về cơ bản, ta có thể hiểu mạng nơron là một đồ thị có hướng như hình 1.13 Trong đó, các đỉnh của đồ thị là các nơron và các cạnh của đồ thị là các liên kết giữa các nơron
Hình 1.13 Sơ đồ đồ thị có hướng đơn giản
Vì vậy, để xây dựng một mạng nơron, ta xây dựng một đồ thị có hướng:
số đỉnh của đồ thị bằng số nơron trong mạng, giá trị của các cạnh chính là trọng số liên kết nơron
1.5 Huấn luyện mạng nơron
1.5.1 Phương pháp học
Trong các hệ thống sinh vật, học hỏi được hiểu như những sự thay đổi hóa học xảy ra ở điểm nối synapte giữa một tế bào này và một tế bào khác Sự thay đổi đó làm mở ra một số cổng ở trên các dendrite-nơi nơron nhận tín hiệu
Trang 2525
Đối với các mạng nơron, học được định nghĩa như sau:
“Học là một quá trình mà trong đó các thông số tự do của mạng nơron được điều chỉnh lại cho phù hợp thông qua một quá trình kích thích bởi môi trường”
Định nghĩa này có nghĩa:
- Mạng nơron được kích thích từ bên ngoài
- Mạng nơron biến chuyển bởi kích thích đó
- Mạng nơron đáp lại bên ngoài một cách khác do những biến chuyển nội bộ Một mạng nơron được huyấn luyện sao cho với một tập các vector đầu vào X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn T của nó Tập X được sử dụng cho huấn luyện mạng được gọi là tập huấn luyện (training set) Các phần tử x thuộc X được gọi là các mẫu huấn luyện (training example) Quá trình huấn luyện bản chất là sự thay đổi các trọng số liên kết của mạng Trong quá trình này, các trọng số của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ cho ra vector đầu ra T như mong muốn
Có ba phương pháp học phổ biến là học có giám sát (supervised learning), học không giám sát (unsupervised learning) và học tăng cường (Reinforcement learning)
1.5.1.1 Học có giám sát
Một thành phần không thể thiếu của phương pháp này là sự có mặt của một “người thầy” (ở bên ngoài hệ thống) Người thầy này có kiến thức về môi trường Điều này được thể hiện qua một tập hợp các cặp đầu vào - đầu ra đã được biết trước Hệ thống học (ở đây là mạng nơron) sẽ phải tìm cách thay đổi các tham số bên trong của mình (các trọng số và các ngưỡng) để tạo nên
Trang 2626
một ánh xạ có khả năng ánh xạ các đầu vào thành các đầu ra mong muốn Sự thay đổi này được tiến hành nhờ việc so sánh giữa đầu ra thực sự và đầu ra mong muốn.[1]
và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại khác nhau [3]
1.5.1.3 Học tăng cường
Học tăng cường: đôi khi còn được gọi là học thưởng-phạt penalty learning), là sự tổ hợp của cả hai mô hình trên Phương pháp này cụ thể như sau: với vector đầu vào, quan sát vector đầu ra do mạng tính được Nếu kết quả được xem là “tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống Do đó học tăng cường là học theo nhà phê bình (critic), ngược với học có giám sát là học theo thầy giáo (teacher) [11],[3]
(reward-1.5.2 Thuật toán học
Thuật toán học của mạng nơron được thực hiện theo các bước sau:
Trang 2727
- Bước 1: Xây dựng cấu trúc thích hợp cho mạng nơron, chẳng hạn có (n + 1) nơron vào (n nơron cho biến vào và 1 nơron cho ngưỡng x0), m nơron đầu ra, và khởi tạo các trọng số liên kết của mạng
- Bước 2: Đưa một vector x trong tập mẫu huấn luyện X vào mạng
- Bước 3: Tính vector đầu ra o của mạng
- Bước 4: So sánh vector đầu ra mong muốn t (là kết quả được cho trong tập huấn luyện) với vector đầu ra o do mạng tạo ra; nếu có thể thì đánh giá lỗi
- Bước 5: Hiệu chỉnh các trọng số liên kết theo một cách nào đó sao cho
ở lần tiếp theo khi đưa vector x vào mạng, vector đầu ra o sẽ giống với y hơn
- Bước 6: Nếu cần, lặp lại các bước từ 2 đến 5 cho tới khi mạng đạt tới trạng thái hội tụ
Việc đánh giá lỗi có thể thực hiện theo nhiều cách, cách dùng nhiều nhất là sử dụng lỗi tức thời :
Err = (o- t) hoặc Err = |o- t| (1.7)
Trong đó: - o là vector đầu ra của mạng
- t là vector đầu ra mong muốn
Lỗi trung bình bình phương (MSE: mean-square error):
Err = (o-t)2/2 (1.8)
Thuật toán tổng quát ở trên cho học có giám sát trong các mạng nơron
có nhiều cài đặt khác nhau, sự khác nhau chủ yếu là cách các trọng số liên kết được thay đổi trong suốt thời gian học Trong đó tiêu biểu nhất là thuật toán lan truyền ngược
1.6 Thu thập dữ liệu cho mạng nơron
Trang 2828
Một khi ta quyết định giải quyết một vấn đề sử dụng mạng nơron ta cần phải thu thập dữ liệu cho mục tiêu huấn luyện Tập hợp dữ liệu huấn luyện bao gồm một số trường hợp, mỗi trường hợp chứa những giá trị của đầu vào
và đầu ra khác nhau
Sự lựa chọn do trực giác và kinh nghiệm quyết định Công việc chuyên môn của ta trong lĩnh vực cần giải quyết sẽ cho ta những ý tưởng về các biến đầu vào phù hợp Trong những mạng nơron ta có thể chọn và loại bỏ nhiều biến và mạng nơron cũng có thể xác định bằng quá trình thực nghiệm Trong một bước ta nên tính đến bất kỳ biến nào mà ta nghĩ có ảnh hưởng đến quá trình thiết kế
Những mạng nơron xử lý dữ liệu số trong một tầm giới hạn rõ ràng Điều này đưa ra một vấn đề, nếu dữ liệu nằm trọng một vùng đặc biệt như dữ liệu chưa biết hay không phải dữ liệu số Do đó phải có những phương pháp xử lý thích hợp, chẳng hạn Dữ liệu số được chia nhỏ thành những khoảng thích hợp cho mạng và những giá trị thiếu có thể thay thế bằng giá trị trung bình hay giá trị thống kê của biến đó thông qua những biến khác đã được huấn luyện
Xử lý dữ liệu không phải số thì khó hơn Loại dữ liệu không phải là số thông thường nhất là những biến có giá trị định danh như giới tính (nam, nữ) Biến định danh có thể biểu diễn bằng số học và mạng nơron có chức năng hỗ trợ điều này Tuy nhiên, mạng nơron làm việc tốt với những trường hợp biến định danh là một tập nhiều giá trị
Số lượng mẫu dùng để huấn luyện mạng rất khó xác định Đã có một vài hướng dẫn về mối liên hệ giữa số lượng mẫu với kích thước mạng (cách đơn giản nhất là số lượng mẫu gấp 10 lần số kết nối trong mạng) Thực ra số lượng mẫu cũng có liên quan đến độ phức tạp của hàm mà mạng phải học
Trang 2929
Khi số biến tăng lên, số lượng mẫu cần huấn luyện cũng tăng phi tuyến, vì thế với số các biến nhỏ (50 hoặc nhỏ hơn) thì lại cần một số lớn các trường hợp mẫu
Trong hầu hết các vấn đề trong thực tế, số lượng mẫu là khoảng hàng trăm hay hàng nghìn mẫu Đối với những vấn đề rất phức tạp thì cần nhiều hơn, nhưng trường hợp này rất ít Nếu dữ liệu huấn luyện ít hơn, rõ ràng không đủ thông tin để huấn luyện mạng, và cách tốt nhất là dùng mạng tuyến tính Nhiều vấn đề trong thực tế có dữ liệu không đáng tin cậy, một vài dữ liệu bị phá hỏng do liệu do nhiễu, hoặc các giá trị không phối hợp đựợc với nhau Mạng nơron có khả năng đặc biệt xử lý dữ liệu bị mất (sử dụng giá trị trung bình hay các những giá trị thống kê khác) Mạng nơron cũng chịu được nhiễu, nhưng cũng phải có giới hạn Nếu thỉnh thoảng có giá trị nằm xa ra khỏi vùng giá trị bình thường thì mạng huấn luyện phải có ngưỡng Cách tốt nhất đối với trường hợp này là nhận ra và loại bỏ những giá trị nằm xa đó (có thể hủy trường hợp này hoặc xem giá trị nằm xa này là giá trị bị mất) Nếu giá trị này khó nhận ra, mạng nơron có chức năng huấn luyện chịu được giá trị nằm khỏi vùng này nhưng huấn luyện này thường kém hiệu quả hơn là huấn luyện chuẩn
Tóm lại cách thu thập dữ liệu có thể nói gọn lại như sau:
- Chọn những giá trị huấn luyện có tác dụng
- Dữ liệu số và biến có giá trị định danh có thể xử lý trực tiếp bằng
mạng nơron Chuyển những loại biến khác sang một trong các dạng này
- Cần hàng trăm hoặc hàng ngàn trường hợp mẫu huấn luyện; càng
nhiều biến thì càng nhiều mẫu huấn luyện Mạng nơron có khả năng nhận ra những biến hữu dụng để huấn luyện
Trang 3030
1.7 Biểu diễn tri thức cho mạng nơron
Chúng ta có thể đưa ra định nghĩa về tri thức như sau:
Tri thức chính là thông tin được lưu trữ hay các mô hình được con người
và máy móc sử dụng để biểu diễn thế giới thực, phán đoán về thế giới và có những đáp ứng phù hợp với thế giới bên ngoài
Các đặc tính cơ bản biểu diễn tri thức là:
- Thông tin gì thực sự được biểu diễn
- Làm thế nào thông tin được mã hóa một cách vật lý cho việc sử dụng sau này
Trong các ứng dụng thực tế của các máy tính thông minh, có thể nói rằng một giải pháp tốt phụ thuộc vào một biến tri thức tốt Điều đó cũng đúng với các mạng nơron, một lớp đặc biệt của các máy thông minh Tuy nhiên, các dạng biểu diễn có thể từ các đầu vào thành các tham số bên trong của mạng là rất đa dạng, và có khuynh hướng là cho việc tìm ra một giải pháp thích hợp nhằm biểu diễn tri thức bằng phương tiện mạng nơron trở nên một sự thách thức về thiết kế
Ở đây cần nhấn mạnh rằng mạng nơron lưu trữ thông tin về thế giới thực bằng chính bản thân cấu trúc của nó kể cả về mặt hình dạng cũng như giá trị tham số bên trong (có thể thay đổi được để nắm bắt môi trường) Một nhiệm
vụ chính của mạng nơron là học một mô hình của thế giới thực để đạt được một số mục đích xác định cần quan tâm Tri thức của thế giới bao gồm hai loại thông tin sau:
- Trạng thái thế giới đã biết, được biểu diễn bởi các sự kiện về những cái
đã biết; dạng tri thức này được xem như là các thông tin ban đầu
Trang 3131
- Các quan sát (đo đạc) về thế giới, thu nhập được thông qua các bộ cảm biến được thiết kế để thăm dò môi trường mà trong đó mạng hoạt động Nói chung, các quan sát này luôn bị nhiễu và sai lệch do nhiều nguyên nhân khác nhau Các quan sát thu nhận được như vậy cung cấp một quỹ thông tin, mà từ đó lấy ra các ví dụ được dùng để huấn luyện mạng nơron
Do cấu trúc một mạng nơron là vô cùng đa dạng, nên để có thể biểu diễn tri thức một cách có hiệu quả, người ta đưa ra bốn quy tắc chung sau:
Quy tắc 1 Các đầu vào tương tự từ các lớp tương tự cần phải luôn tạo ra
những biểu diễn tương tự trong mạng, và như vậy nên được phân lớp thuộc về cùng một loại Trong tiêu chuẩn này, người ta thường sử dụng một số thước
đo để xác định độ “tương tự” giữa các đầu vào (ví dụ khoảng cách euclide)
Quy tắc 2 Các phần tử mà có thể phân ra thành các lớp riêng biệt thì nên
có những biểu diễn khác nhau đáng kể trong mạng
Quy tắc 3 Nếu một đặc trưng nào đó đặc biệt quan trọng thì nên có một
số lượng lớn nơron liên quan đến việc biểu diễn đặc trưng này trong mạng Số lượng lớn các nơron bảo đảm mức độ chính xác cao trong việc thực hiện các quyết định và nâng cao khả năng chịu đựng các neuron hỏng
Quy tắc 4 Thông tin ban đầu và các tính chất bất biến nên được đưa vào
trong thiết kế ban đầu của một mạng nơron, và như vậy sẽ giảm bớt gánh nặng cho quá trình học
Trong các quy tắc trên thì quy tắc 4 đặc biệt quan trọng vì nếu chúng ta
áp dụng nó một cách thích hợp sẽ dẫn đến khả năng tạo ra các mạng nơron với một kiến trúc chuyên biệt Điều này thực sự được quan tâm do một số nguyên nhân sau:
Trang 32- Tốc độ chuyển thông tin qua một mạng chuyên biệt là nhanh hơn
- Giá của việc xây dựng một mạng chuyên biệt sẽ nhỏ hơn do kích thước nhỏ của nó so với mạng kết nối đầy đủ
1.8 Ứng dụng của mạng nơron
Trong một vài năm trở lại đây, mạng nơron đã được nhiều người quan tâm và đã được áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y tế, địa chất và vật lý, Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân loại và điều khiển, mạng nơron đều có khả năng ứng dụng được Ví dụ như khả năng nhận dạng mặt người trong các hệ thống quản lý thông tin liên quan đến con người (quản lý nhân sự ở các doanh nghiệp, quản lý sinh, sinh viên trong các trường học… ), các ngành khoa học hình sự, khoa học tướng số
và tử vi, v.v…
Kết hợp chặt chẽ với logic mờ, mạng nơron nhân tạo đã tạo nên cuộc cách mạng thực sự trong việc thông minh hóa và vạn năng hóa các bộ điều khiển kỹ thuật cao cho cả hiện tại và trong tương lai Ví dụ như ứng dụng tự động điều khiển hệ thống lái tàu, hệ thống dự báo sự cố,…
Trang 3333
Mạng nơron thực hiện việc mô phỏng cấp thấp hệ thống nơron sinh học Trong tương lai với sự phát triển mô phỏng nơron sinh học, chúng ta có thể có loại máy tính thông minh thật sự
- Banking: Bộ đọc séc và các tài liệu, tính tiền của thẻ tín dụng
- Defense: Định vị - phát hiện vũ khí, dò mục tiêu, phát hiện đối tượng, nhận dạng nét mặt, các bộ cảm biến thế hệ mới, xử lý ảnh radar,
- Electronics: Dự đoán mã tuần tự, sơ đồ chip IC, điều khiển tiến trình, phân tích nguyên nhân hỏng chip, nhận dạng tiếng nói, mô hình phi tuyến
- Entertainment: Hoạt hình, các hiệu ứng đặc biệt, dự báo thị trường
- Financial: Định giá bất động sản, cho vay, kiểm tra tài sản cầm cố, đánh giá mức độ hợp tác, phân tích đường tín dụng, chương trình thương mại qua giấy tờ, phân tích tài chính liên doanh, dự báo tỷ giá tiền tệ
- Insurance: Đánh giá việc áp dụng chính sách, tối ưu hóa sản phẩm
Trang 3434
Kết luận chương 1:
Qua việc nghiên cứu về mạng nơron tổng quan ở trên, ta đã thấy có rất nhiều loại mạng nơron và cũng có rất nhiều thuật toán học khác nhau Qua đó, chúng ta đã thấy được đặc điểm giống và khác nhau cơ bản của học có giám sát, học không giám sát và học tăng cường; phân biệt được các loại mạng nơron như mạng dẫn tiến đơn mức, mạng dẫn tiến đa mức, mạng quy hồi, Bên cạnh đó, nội dung của chương còn đề cập đến cách thức thu thập dữ liệu, biểu diễn tri thức cho mạng nơron và ứng dụng của mạng nơron Đây là tiền đề lý thuyết quan trọng để xây dựng ứng dụng giải quyết bài toán dựa trên mạng nơron trong các chương tiếp theo
Trang 3535
CHƯƠNG 2: BÀI TOÁN PHÂN LOẠI THƯ RÁC
2.1 Giới thiệu về thư rác
2.1.1 Khái niệm thư rác
Hiện nay vẫn chưa có một khái niệm hoàn chỉnh, chặt chẽ về thư rác (spam) Có quan điểm coi thư rác là những thư quảng cáo không được yêu cầu (Unsolicited Commercial Email-UCE), có quan điểm rộng hơn cho rằng thư rác bao gồm thư quảng cáo, thư quấy rối, và những thư có nội dung không lành mạnh (Unsolicited Bulk Emai -UBE)
Thư rác (spam mail) là những bức thư điện tử không yêu cầu, không mong muốn và được gửi hàng loạt tới người nhận Một bức thư nếu gửi không theo yêu cầu có thể đó là thư làm quen hoặc thư được gửi lần đầu tiên, còn nếu thư được gửi hàng loạt thì nó có thể là thư gửi cho khách hàng của các công ty, các nhà cung cấp dịch vụ Vì thế một bức thư bị coi là rác khi nó không được yêu cầu, và được gửi hàng loạt
Việc gửi thư rác làm cho người nhận phải mất thời gian và phải trả tiền cho nhà cung cấp dịch vụ Internet IPS để đọc những bức thư không liên quan Đôi khi những bức thư có chứa virus có thể phá hủy cả hệ thống dữ liệu trong máy tính Ngoài ra, tài nguyên (đường truyền, máy chủ) của IPS cũng bị chiếm dụng nhiều khi gửi thư rác
Tuy nhiên yếu tố quan trọng nhất để phân biệt thư rác với thư thông thường là nội dung thư Khi một người nhận được thư rác, người đó không thể xác định được thư đó được gửi hàng loạt hay không nhưng có thể xác định được đó là thư rác sau khi đọc nội dung thư Đặc điểm này chính là cơ sở cho giải pháp phân loại thư rác bằng cách phân tích nội dung thư
2.1.2 Các đặc điểm của thư rác
Trang 3636
Thư rác được gửi đi một cách tự động: Mục đích của những kẻ gửi thư rác (spammer) là có thể phát tán lượng thư rác tới người dùng càng nhiều càng tốt Do vậy chính thường viết ra những phần mềm tự động gửi một lượng lớn thư rác trong một khoảng thời gian ngắn Thư rác được gửi đến những địa chỉ ngẫu nhiên trên một diện rộng Địa chỉ email của người bị nhận thư rác rất ngẫu nhiễn và dường như giữa họ không có mối quan hệ với nhau
Có nhiều phương pháp và thủ thuật khác nhau mà những kẻ gửi thư rác áp dụng trong việc dò tìm địa chỉ email của người dùng như: Dùng chương trình
tự động dò tìm địa chỉ email trên mạng Internet, các trang chủ, Newsgroup, Chatroom Mua địa chỉ email từ những công ty đã xây dựng danh sách khách hàng của họ nhưng vì lý do nào đó phải bán đi hoặc đối tác của công ty được phép truy cập danh sách khách hàng của công ty này để gửi thông tin về dịch
vụ hay sản phẩm Email chuỗi (Chain letter) từ bạn bè và người thân, yêu cầu gửi thư cho càng nhiều người càng tốt vì lý do ủng hộ một chương trình nào
đó hoặc mời chào người dùng nếu gửi cho nhiều người sẽ được nhận nhiều tiền hơn Dùng chương trình đoán tên tự động: Những kẻ gửi thư rác dùng chương trình này gửi email liên tục vào một nơi để đoán địa chỉ mail qua những phương pháp như E-pending, Dictionary hay Alphabet Bên cạnh đó những kẻ gửi thư rác còn có thể có được địa chỉ email của người dùng do: Các nhà cung cấp dịch vụ ISP không có chính sách và công nghệ bảo mật, dẫn đến các tin tặc hacker ăn cắp địa chỉ của khách hàng để buôn bán và quấy nhiễu Hoặc có thể do chính nhà cung cấp ISP buôn bán địa chỉ email của khách hàng để kiếm lợi nhuận Nhân viên của các ISP đã tiết lộ thông tin về khách hàng cho các đối thủ cạnh tranh của chính ISP đó hoặc cho những công
ty muốn quảng cáo cho những khách hàng riêng biệt Chính người dùng cung cấp địa chỉ email của mình qua những lần đăng kí thành viên trên Internet hoặc trên giấy tờ các dịch vụ mà chẳng bao giờ dùng hoặc những bản tin điện