So sánh kết quả thực nghiệm

Một phần của tài liệu Máy vectơ tựa (support vector machine-SVM) và ứng dụng trong việc xác định tham số độ thấm trong ngành địa chất (Trang 63)

Dữ liệu mẫu dùng ựể chạy thực nghiệm dưới ựây do TS. Nguyễn Hải An công tác tại Trung tâm Phân tắch Thắ nghiệm - Viện Dầu khắ Việt Nam cung cấp.

Tệp chứa các mẫu dùng cho quá trình luyện và dự ựoán gồm các ựặc trưng và ựộ thấm ựo ựược từ tài liệu ựịa vật lý giếng khoan ựược lưu ở dạng LAS (Log ASCII Standard). Mỗi mẫu có bảy ựặc trưng và mỗi ựặc trưng cách nhau bởi một dấu tab. Tệp mẫu có cấu trúc ựược mô tả như sau:

Tên cột Dẫn giải

No Số thứ tự của mẫu luyện DEPT.F Depth - độ sâu lấy mẫu

GR.API UNITS Gamma Ray - độ phóng xạ tự nhiên RHOB.gm/cc Bulk Density - Mật ựộ ựá

NPHI.% Neutron Porosity Hydrogen Index - độ rỗng nơtron LLD. Laterolog Deep - Giá trị ựo sâu sườn

DT.usec/ft Sonic - Giá trị siêu âm

SP.MV Spontaneous Potential - điện thế phân cực PERM.% Permeability - độ thấm

Sử dụng hồi quy SVM với hàm hạch RBF (σ = 10) và các hệ số

100, 0.1

C = ε = ; ANN với hàm chuyển RBF (σ = 10) cùng trên 70 mẫu luyện và 20 mẫu cần dự báo.

2.6.1 Quá trình hu[n luyAn

Kết quả dùng ANN ựể huấn luyện

Hình 2-2. Kết quả huấn luyện sử dụng ANN với 70 mẫu luyện

Kết quả dùng hồi quy SVM ựể huấn luyện

Hình 2-3. Kết quả huấn luyện sử dụng hồi quy SVM với 70 mẫu luyện

So sánh kết quả huấn luyện mẫu giữa hai phương pháp Phương pháp Sai số bình phương trung bình

(Mean squared error)

ANN 0.27412 SVR 0.00010 đ t h m ( % ) Mẫu Dự ựoán Số mẫu đ t h m ( % ) Mẫu Dự ựoán Số mẫu

2.6.2 D@ ựoán ự th[m

Kết quả dự ựoán ựộ thấm sử dụng ANN sau khi luyện:

Hình 2-4. Kết quả sử dụng ANN dự báo ựộ thấm

Kết quả dự ựoán ựộ thấm sử dụng SVR sau khi luyện:

Hình 2-5. Kết quả sử dụng SVR dự báo ựộ thấm

Kết quả dự ựoán ựộ thấm sử dụng ANN và SVR so với ựộ thấm mẫu:

Thứ tự mẫu độ thấm ựo ựược độ thấm xác ựịnh bởi ANN độ thấm xác ựịnh bởi SVR Thứ tự mẫu độ thấm ựo ựược độ thấm xác ựịnh bởi ANN độ thấm xác ựịnh bởi SVR 1 6.808 10.4058 6.6735 11 4.941 7.3999 4.8354 2 8.47 10.1784 8.2201 12 3.631 4.0048 3.9901 3 9.212 10.0661 9.0347 13 4.203 3.9563 4.7743 4 4.903 4.4187 4.8354 14 3.985 3.9685 4.0294 5 5.035 4.1347 4.8354 15 4.409 4.1288 4.8354 6 4.621 4.1416 4.8354 16 3.710 3.9539 3.9896 7 4.728 4.1100 4.8354 17 4.863 3.9252 4.7653 8 4.776 4.1067 4.8354 18 4.852 4.4824 4.8354 9 5.125 4.0880 4.8354 19 5.296 5.4352 5.1244 10 4.905 4.8807 4.8354 20 4.921 0.8592*10-13 4.8354 đ t h m ( % ) Mẫu Dự ựoán Số mẫu đ t h m ( % ) Mẫu Dự ựoán Số mẫu

Phương pháp Sai số bình phương trung bình (Mean squared error)

ANN 2.1467

SVR 0.2325

2.7 Kết luận

Việc dự báo ựộ thấm ựể hoàn thành bài toán mô phỏng mỏ từ ựó có chiến lược khai thác hợp lý và nâng cao hệ số thu hồi dầu là một thử thách lớn mà các nhà khai thác mỏ ựang phải ựương ựầu. Nên việc tìm kiếm giải pháp mới nhằm dự ựoán ựộ thấm với ựộ chắnh xác cao là một yêu cầu hết sức cấp bách và thực tế. Chắnh vì vậy, dự ựoán ựộ thấm sử dụng hồi quy SVM là bài toán mang tắnh thực tiễn và ứng dụng cao. (adsbygoogle = window.adsbygoogle || []).push({});

Với kết quả ựạt ựược, ta thấy việc dự ựoán ựộ thấm bằng phương pháp hồi quy SVM cho kết quả tốt hơn so với việc dự ựoán ựộ thấm bằng phương pháp ANN. Tuy nhiên ựể có kết luận chắnh xác hơn, bài toán ựộ thấm cần ựược dự ựoán với tập dữ liệu nhiều và ựa dạng hơn nữa.

KẾT LUẬN

Kết quả ựạt ựược

Mục tiêu của luận văn ựưa ra ựã ựạt ựược:

Ớ Trình bày về nguyên lý hoạt ựộng của máy vectơ tựa SVM, bao gồm những khái niệm, bài toán phân lớp tuyến tắnh, phân lớp phi tuyến và hồi quy SVM;

Ớ Một số ứng dụng cụ thể của máy vectơ tựa SVM: phân loại ựa lớp trong nhận dạng số viết tay, chẩn ựoán bệnh ung thư vú,...;

Ớ Trình bày quá trình mô phỏng mỏ và phương trình chuyển ựộng 3 pha dầu-khắ-nước. Từ ựó nêu bật vai trò của ựộ thấm trong quá trình mô phỏng và khai thác mỏ. Dựa trên ựó, áp dụng phương pháp hồi quy SVM vào việc xây dựng thuật toán xác ựịnh tham số ựộ thấm của các vỉa ựá trong ngành ựịa chất (ứng dụng của SVM trong bài toán dự báo). Kết quả ựộ thấm tắnh toán trên SVM ựược so sánh với kết quả ựộ thấm tắnh toán trên ANN cùng tập mẫu luyện và tập hợp mẫu cần dự ựoán;

Ớ Lập trình thử nghiệm ban ựầu trên Phần mềm MatLab. Máy vectơ tựa SVM có những ựặc ựiểm sau:

Ớ SVM là một phương pháp học máy tiên tiến có cơ sở toán học chặt chẽ và ựạt ựộ chắnh xác phân lớp cao dựa trên nền tảng lý thuyết học thống kê; Ớ Bản chất nhị phân cũng là một hạn chế của SVM, việc mở rộng khả năng

của SVM ựể giải quyết các bài toán phân loại nhiều lớp là vấn ựề không tầm thường. Có nhiều chiến lược ựược ựề xuất ựể mở rộng SVM cho bài toán phân loại nhiều lớp với những ựiểm mạnh, yếu khác nhau tùy thuộc vào từng loại dữ liệu cụ thể;

Ớ Bài toán huấn luyện SVM thực chất là bài toán qui hoạch toàn phương trên một tập lồi, do ựó luôn luôn tồn tại nghiệm toàn cục và duy nhất; Ớ Bản chất của SVM là việc phân lớp ựược thực hiện gián tiếp trong không

gian ựặc trưng với số chiều cao hơn số chiều của không gian ựầu vào thông qua hàm hạch. Do ựó, hiệu quả phân lớp của SVM phụ thuộc vào hai yếu tố: giải bài toán qui hoạch toàn phương và lựa chọn hàm hạch. Việc giải bài toán qui hoạch toàn phương luôn luôn ựạt ựược giải pháp tối ưu nên mọi cố gắng trong nghiên cứu lý thuyết SVM tập trung vào việc lựa chọn hàm hạch;

Ớ Khả năng học của SVM là ựộc lập với số chiều của không gian ựặc trưng, SVM có ựộ phức tạp dựa trên biên lớp dữ liệu ựược phân lớp (số lượng các vectơ tựa) mà không dựa trên số lượng các ựặc trưng. Vì vậy SVM có thể tổng quát hóa ngay cả khi dữ liệu ựầu vào phức tạp và có rất nhiều ựặc trưng;

Ớ Do số lượng siêu phẳng trong bài toán phân lớp tỷ lệ thuận với số lượng lớp cần phân loại. điều này dẫn tới thời gian tắnh toán sẽ nhiều hơn trong giai ựoạn huấn luyện khi số lượng lớp của mẫu lớn. Mặt khác, trường hợp mẫu cần phân loại không thuộc k lớp cho trước, phương pháp SVM sẽ cho kết quả sai (tự ựộng phân loại về lớp gần nhất).

đến nay SVM ựược ứng dụng rộng rãi trong nhiều lĩnh vực liên quan ựến bài toán phân loại, khai thác và dự ựoán thông tin dựa trên các thuộc tắnh ựặc trưng biết trước.

Hướng phát triển

Với khả năng vượt trội của SVM về tắnh hiệu quả, ựộ chắnh xác, khả năng xử lý các bộ dữ liệu mẫu một cách linh hoạt và ựặc biệt là khả năng tổng quát hóa cao nên việc sử dụng máy vectơ tựa - SVM ựã và ựang là sự lựa chọn tối ưu trong giải quyết các bài toán phân loại và khai thác thông tin của một số ngành khoa học.

Do tiếp cận máy vectơ tựa SVM trong thời gian ngắn nên luận văn mới tìm hiểu ựược những vấn ựề cơ bản, cốt yếu nhất trong thuật toán và thử nghiệm ban ựầu trên MatLab.

Hướng phát triển tiếp theo của luận văn sẽ tập trung vào nghiên cứu các thuật toán chuyên sâu ựể nâng cao hiệu quả của giai ựoạn huấn luyện, việc lựa chọn hàm hạch như thế nào là tối ưu, các thuật toán khác ựể giải bài toán tối ưu trong SVM.

Mặt khác ựề tài cũng ựang kết hợp với Viện Dầu khắ Việt Nam ựể làm rõ thêm các khái niệm liên quan ựến Mỏ ựịa chất. Sau ựó dựa trên kết quả ựịa vật lý giếng khoan; tài liệu ựịa chấn và dùng hồi quy SVM ựể tắnh ựộ thấm với số lượng mẫu dữ liệu lớn và ựa dạng hơn. Kết quả ựạt ựược sẽ ựược so sánh với kết quả tắnh toán ựộ thấm bằng phương pháp ANN ựang dùng hiện nay của Viện. Qua ựó nâng cao khả năng dự ựoán trữ lượng và mô phỏng mỏ, góp phần thành công trong việc quản lý và khai thác tài nguyên.

TÀI LIỆU THAM KHẢO

Tiếng Việt

1. Nguyễn Văn Huy, Nhận dạng chữ viết và phân tắch trang tài liệu, đại học Thái Nguyên.

2. Nguyễn đức Lân, Nghiên cứu ựộ thấm ựá móng granitoit mỏ Bạch Hổ bằng mạng nơron nhân tạo, đại học Mỏ - địa chất.

3. Phạm Anh Phương, Ứng dụng SVM cho bài toán phân lớp nhận dạng, Kỷ yếu Hội thảo khoa học Quốc gia lần thứ ba về nghiên cứu, phát triển và ứng dụng Công nghệ thông tin và Truyền thông (ICT.rdaỖ06), nhà xuất bản Khoa học và Kỹ thuật, Hà Nội, 20-21/05/2006, tr. 393-400.

4. Nguyễn Quốc Quân, Bài giảng ựịa vật lý giếng khoan, đại học Khoa học Tự nhiên.

5. Bùi Thế Tâm, Trần Vũ Thiệu (1998), Các phương pháp Tối ưu hóa, NXB Giao thông Vận tải, Hà Nội.

6. Hoàng Tụy (2005), Lý thuyết Tối ưu, Viện Toán học, Hà Nội.

Tiếng Anh

7. Aly Farag and Refaat M Mohamed (2004), ỘRegression Using Support (adsbygoogle = window.adsbygoogle || []).push({});

Vector Machines: Basic foundationsỢ, Technical Report, Computer Vision

and Image Processing Laboratory Electrical and Computer Engineering Department University of Louisville, Louisville, KY 40292.

8. A. J. Smola and B. Schỏlkopf (1998), ỘA Tutorial on Support Vector

RegressionỢ, NeuroCOLT Technical Report NC-TR-98-030, Royal

Holloway College, University of London, UK.

9. C.M. Calvin, L.D. Robert (1990), ỘReservoir SimulationỢ, SPE monograph series, Richardson TX.

10.J. C. Burges (1998), ỘA Tutorial on Support Vector Machines for Pattern

RecognitionỢ, Data Mining and Knowledge Discovery, Vol. 2 (no. 2), pp.

1-47.

11.J. H. Abou-Kassem, S. M. Farouq Ali and M. R. Islam (2006), ỘPetroleum

Reservoir Simulation: A Basic ApproachỢ, Gulf Publishing Company,

Houston, Texas.

12.M. A. Aizerman, E. M. Braverman, and L. I. Rozonoér (1964), ỘTheoretical foundations of the potential function method in pattern

13.S. R. Gunn (1998), ỘSupport Vector Machines for Classification and

RegressionỢ, Technical Report, University of Southampton, School of

Electronics and computer Science.

14.Vladimir N. Vapnik (1999), ỘThe Nature of Statistical Learning TheoryỢ, Springer-Verlag, New York, Inc.

Website 15.http://cmp.felk.cvut.cz/cmp/software/stprtool/ 16.http://onlinesvr.altervista.org/ 17.http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 18.http://www.isis.ecs.soton.ac.uk 19.http://www.svms.org/vc-dimension/

PHỤ LỤC

Tại sao lại triển khai trên MatLab

MatLab là ngôn ngữ lập trình cao cấp cho mục ựắch tắnh toán kỹ thuật. Chương trình tắch hợp tắnh toán, ựồ họa và lập trình trong một môi trường. Do ựó người dùng dễ dàng sử dụng, lời giải ựược biểu diễn dưới dạng các ghi chú toán học.

MatLab là một hệ thống tương tác mà tất cả các phần tử dữ liệu cơ bản là một mảng không yêu cầu về kắch thước. đây là một ựiểm mạnh cho phép người sử dụng giải quyết các bài toán trong kỹ thuật ựặc biệt là các công thức ựược xây dựng từ ma trận hoặc vectơ.

Ngoài ra, người dùng MatLab còn phát triển các các gói công cụ (hay còn gọi là thư viện) ứng dụng cho nhiều lĩnh vực khác nhau. điều ựó tạo lên lợi ắch to lớn cho người sử dụng kế thừa và phát triển một cách có hiệu quả.

MatLab gồm các phần chắnh dưới ựây:

Môi trường phát triển (Development Environment): Tập hợp các công cụ cho phép người dùng sử dụng các hàm và các tệp MatLab. Môi trường phát triển giao tiếp với người dùng qua nền MatLab (MatLab Desktop), cửa sổ lệnh (Command Window), cửa sổ các lệnh ựã thực thi (Command History), cửa sổ soạn thảo và phát hiện lỗi (Edit and Debugger), không gian làm việc hiện tại (Workspace);

Thư viện các hàm toán học (The MatLab Mathematical Function Library): đây là thư viện tập hợp các giải thuật tắnh toán ựược gọi thông qua các hàm cơ bản như: sin, cosin,... ựến các hàm phức tạp hơn như: nghịch ựảo

ma trận, vectơ riêng, biến ựổi Fourier,...;

Lập trình trong môi trường MatLab: MatLab là ngôn ngữ lập trình cấp cao thực thi theo các ựoạn lệnh, các hàm, cấu trúc dữ liệu,... cho phép xây dựng các chương trình từ ựơn giản ựến phức tạp;

đồ họa (Graphics): Với hỗ trợ này, MatLab cho phép thể hiện các kết quả tắnh toán, vectơ và ma trận dưới dạng ựồ thị cũng như ký hiệu và in ấn chúng. MatLab cung cấp các hàm nâng cao cho việc thể hiện dữ liệu hai hay nhiều chiều, xử lý ảnh, chuyển ựộng, ựồ thị. Ngoài ra MatLab còn cung cấp cho người sử dụng các hàm giao tiếp với các ứng dụng khác; Giao diện lập trình ứng dụng (The MatLab Application program

Interface): Thư viện cho phép người dùng tạo ra những chương trình bằng ngôn ngữ C hoặc Fortran tương tác với MatLab; (adsbygoogle = window.adsbygoogle || []).push({});

Trợ giúp sử dụng: MatLab cung cấp tài liệu dưới dạng bản in và Web ựể hướng dẫn người dùng sử dụng tất cả các chức năng, các hàm hỗ trợ.

Sử dụng gói SVM trên MatLab

Luận văn sử dụng phần mềm MatLab phiên bản 7.1.0.0.499 (R2010a) 32-bit trên nền Windows ựã tắch hợp sẵn gói SVM. Với mỗi ứng dụng sử dụng SVM thông thường phải thực hiện qua 2 bước dưới ựây:

Bước 1: Giai ựoạn huấn luyện SVM

Tập mẫu luyện ựưa vào máy SVM ựể luyện. Sau khi kết thúc quá trình luyện, hệ thống sẽ lưu lại giá trị các tham số của máy. Quá trình luyện tốn khá nhiều thời gian, tốc ựộ luyện nhanh hay chậm tùy thuộc vào từng thuật toán luyện cũng như số lượng mẫu luyện tham gia. Tuy nhiên, thời gian ựể ựưa ra kết quả dự ựoán với mẫu mới nhanh hơn so với giai ựoạn luyện SVM.

Bước 2: Giai ựoạn dự ựoán với mẫu mới

Một mẫu mới x ựược ựưa vào máy SVM ựã luyện ở bước 1 ựể tắnh toán và ựưa ra kết quả dự ựoán.

để sử dụng gói SVM, ựầu tiên ta chọn ra train = crossvalind('holdOut', groups, λ) trong ựó tham số λ ∈(0, 1). Lệnh này cho phép chọn ngẫu nhiên khoảng

( ) 0

0

1−λ 100 số phần tử trong mẫu ựể luyện, trong ựó groups là lớp tương ứng của các vectơ hàng trong tập mẫu. Giá trị mặc ựịnh của λ là 0.5.

SVMtrain: lệnh có tác dụng luyện ra một hàm phân lớp bằng phương pháp SVM, dựa trên một tập mẫu luyện cho trước ựã ựược nhận dạng bởi chuyên gia. Khi sử dụng câu lệnh có cú pháp (Syntax):

SVMStruct = svmtrain(Training, group, ...

'kernel_function', kfun, ... 'polyorder', order, ... 'method', method, ...

'quadprog_opts', options, ... 'showplot', true)

Mô tả tác dụng của các từ khóa:

o SVMStruct = svmtrain(Training, group): luyện ra một hàm phân

lớp SVM bằng việc sử dụng tập mẫu luyện ựã có. Training là một ma trận số, mỗi hàng của nó là tọa ựộ của một vectơ trong tập mẫu luyện. Nhãn của mỗi vectơ hàng trong Training theo thứ tự

là các phần tử của vectơ cột group. Các phần tử của group có thể là một vectơ số, một xâu kắ tự hoặc một dãy các sâu kắ tự. SVMStruct chứa các thông tin về hàm phân lớp như các nhân tử Lagrange dương, các vectơ tựa, hàm hạch ựược dùng, tập các nhãn của các vectơ trong tập Training,...

o svmtrain(, ...Ỗkernel_functionỖ, kfun): cho phép chọn hàm hạch kfun ựể nhúng tập mẫu luyện vào không gian ựặc trưng. kfun là

tên của hàm hạch ta chọn, một số hàm hạch sẵn có là: ỔlinearỖ: Hạch tuyến tắnh hay tắch vô hướng; ỔrbfỖ: Hạch bán kắnh căn bản Gaussian;

ỔpolynomialỔ: Hạch ựa thức (bậc mặc ựịnh là 3).

o svmtrain(, ...ỖpolyorderỖ, order): chọn bậc cho hạch ựa thức là

*

order ∈ ℕ . Bậc mặc ựịnh khi sử dụng hạch ựa thức là 3.

o svmtrain(, ...ỖmethodỖ, method): cho phép lựa chọn phương pháp

giải bài toán tối ưu ựể tìm ra siêu phẳng tách. Trong MatLab có hai lựa chọn:

ỔQPỖ: Quy hoạch toàn phương - Quadratic programming. ỔLSỖ: phương pháp bình phương nhỏ nhất - Least-squares

method;

o svmtrain(,..., 'quadprog_opts', options): Cho phép thay ựổi một số options trong việc giải bài toán quy hoạch toàn phương. (adsbygoogle = window.adsbygoogle || []).push({});

SVMclassify: lệnh sử dụng kết quả phân lớp svmStruct, ựược luyện ra từ svmtrain ựể xác ựịnh lớp cho mỗi phần tử của một tập dữ liệu mới. Cú pháp câu lệnh

Một phần của tài liệu Máy vectơ tựa (support vector machine-SVM) và ứng dụng trong việc xác định tham số độ thấm trong ngành địa chất (Trang 63)