MỤC LỤC LỜI CAM ĐOAN 1 LỜI CẢM ƠN 2 MỤC LỤC 3 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 7 DANH MỤC CÁC BẢNG BIỂU 8 DANH MỤC CÁC HÌNH VẼ 9 LỜI MỞ ĐẦU 11 CHƯƠNG 1 13 ĐẶC ĐIỂM ĐỊA CHẤT KHU VỰC NGHIÊN CỨU 13 1.1 Bồn trũng Cửu Long 13 1.1.1 Đặc điểm kiến tạo và hình thành 13 Thời kì trước tạo rift: 13 Thời kì đồng tạo rift: 14 Thời kì sau tạo rift: 15 1.1.2 Hệ thống dầu khí: 16 1.1.2.1 Đá sinh 16 Độ phong phú vật chất hữu cơ 17 Quy mô phân đới sinh dầu của các tầng đá mẹ 17 1.1.2.2 Đá chứa 18 1.1.2.3 Đá chắn 18 1.2 Cấu tạo XY 20 1.2.1 Vị trí địa lý 20 1.2.2 Cấu trúc địa chất mỏ XY 21 1.2.2.1 Địa tầng 21 Đá móng trước Kainozoi 21 Trầm tích Kainozoi 21 Oligoxen dưới, Điệp Trà Cú ( P31) 21 Oligoxen trên, Điệp Trà Tân (P32) 22 Mioxen dưới, Điệp Bạch Hổ ( N11) 24 Mioxen giữa, Điệp Côn Sơn ( N12) 25 Mioxen trên, Điệp Đồng Nai ( N13) 25 Plioxen + Đệ tứ, Điệp Biển Đông ( N2 + Q) 25 1.2.2.2 Kiến tạo 25 Giai đoạn trước tạo rift 27 Giai đoạn đồng tạo rift 27 Giai đoạn sau tạo rift 27 1.2.3 Lịch sử nghiên cứu địa chất địa vật lý 28 CHƯƠNG 2 29 CƠ SỞ LÝ THUYẾT 29 2.1 Sơ lược về độ rỗng (Φ, PHI) 29 2.1.1 Định nghĩa 29 2.1.2. Phân loại 29 Độ rỗng toàn phần (Φt, PHIT): 29 Độ rỗng hở (Φo) 30 Độ rỗng tiềm năng (Φp): 30 Độ rỗng hiệu dụng (Φe, PHIE): 30 2.1.3. Các yếu tố ảnh hưởng đến độ rỗng 31 2.1.3.1.Kích thước hạt 31 2.1.3.2.Độ lựa chọn 31 2.1.3.3.Hình dạng hạt 31 2.1.3.4.Độ nén ép 31 2.1.4. Các phương pháp truyền thống xác định độ rỗng 32 2.1.4.1. Tính độ rỗng theo phương pháp mật độ 32 2.1.4.2.Tính độ rỗng theo phương pháp Neutron 32 2.1.4.3.Tính độ rỗng theo phương pháp Neutron – Mật độ 33 2.2 Tổng quan về mạng nơ ron nhân tạo 33 2.2.1 Các khái niệm cơ bản về thành phần, cấu trúc và nguyên lý hoạt động của mạng nơron nhân tạo. 33 Nơron nhân tạo (cấu trúc, nguyên tắc hoạt động) 33 Mạng nơron nhân tạo (cấu trúc, nguyên tắc hoạt động) 34 2.2.2. Các quá trình chính trong mô hình nơron nhân tạo 35 Quá trình ánh xạ 35 Quá trình luyện mạng 36 2.2.3. Một số quy tắc học 38 Quy tắc học từng mẫu 38 Quy tắc học theo khối 38 Quy tắc học thích nghi 38 2.2.4. Một số đặc tính cơ bản của ANN 39 Chương 3 40 XÁC ĐỊNH ĐỘ RỖNG CÁC TRẦM TÍCH OLIGOXEN TRÊN MỎ XY TỪ TÀI LIỆU ĐVLGK VÀ MẪU LÕI BẰNG ANN 40 3.1. Cơ sở dữ liệu 40 3.2 Xác định độ rỗng các trầm tích Oligoxen mỏ XY bằng phương pháp cổ điển 40 3.2.1. Xác định độ rỗng 40 3.2.2. Nhận xét 43 3.3 Xác định độ rỗng các trầm tích Oligoxen mỏ XY bằng ANN 44 3.3.1 Cấu trúc của ANN 44 3.3.2 Xử lý số liệu đầu vào 44 3.3.2.1 Hiệu chỉnh độ sâu 44 3.3.2.2 Chuẩn hóa dữ liệu 45 3.3.3 Chương trình hóa ANN 46 3.3.3.1. Chức năng ánh xạ 46 3.3.3.1. Chức năng huấn luyện 46 3.3.3.2. Chức năng huấn luyện và kiểm tra 47 3.3.4 Xây dựng tập huấn luyện mạng và tập kiểm tra 47 3.3.5 Huấn luyện mạng 48 3.3.6 Tính toán độ rỗng tầng Oligoxen trên giếng XY4X 50 3.3.7. Tính toán độ rỗng tầng Oligoxen trên giếng XY2X 53 3.3.8. Nhận xét 56 3.4 Xác định ANN tối ưu 56 3.5. Tính toán độ rỗng các trầm tích Oligoxen trên mỏ XY bằng ANN tối ưu 58 3.6. Kết luận 62 KẾT LUẬN VÀ KIẾN NGHỊ 64 TÀI LIỆU THAM KHẢO 66 PHỤ LỤC 68 Mã lệnh ngôn ngữ Matlab của ANN 68
1 LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng Các số liệu, kết nêu luận văn trung thực chưa công bố công trình khác Tác giả luận văn Phạm Lê Hoàng Linh LỜI CẢM ƠN Trước tiên, xin gửi lời cảm ơn đến Ban giám hiệu Trường Đại học Mỏ Địa chất, Ban chủ nhiệm khoa Dầu khí, phòng nhân Viện NCKH&TK dầu khí biển VIETSOVPETRO tạo điều kiện, hoàn thành thủ tục giấy tờ để thực tập Để hoàn thành đồ án xin bày tỏ lòng cảm ơn sâu sắc tới thầy giáo PGS.TS Lê Hải An tập thể thầy cô giáo môn Địa vật lý, Trường Đại học Mỏ - Địa Chất người tận tình hướng dẫn, giúp đỡ tạo điều kiện tốt cho trình hoàn thành đồ án Tôi xin đặc biệt chân thành cảm ơn Trưởng phòng NCTH&VLĐ TS.Trần Đức Lân người trực tiếp hướng dẫn tận tình dạy cho suốt thời gian thực tập Viện NCKH&TK dầu khí biển VIETSOVPETRO Tôi xin gửi lời cảm ơn chân thành tới tập thể cán bộ, kỹ sư phòng NCTH&VLĐ, người giúp đỡ tạo điều kiện cho suốt trình thực tập Sinh viên thực Phạm Lê Hoàng Linh MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC HÌNH VẼ LỜI MỞ ĐẦU .10 CHƯƠNG 12 ĐẶC ĐIỂM ĐỊA CHẤT KHU VỰC NGHIÊN CỨU 12 1.1 Bồn trũng Cửu Long 12 1.1.1 Đặc điểm kiến tạo hình thành 12 Thời kì trước tạo rift: 12 Thời kì đồng tạo rift: 13 Thời kì sau tạo rift: 14 1.1.2 Hệ thống dầu khí: 15 1.1.2.1 Đá sinh .15 Độ phong phú vật chất hữu 16 Quy mô phân đới sinh dầu tầng đá mẹ 16 1.1.2.2 Đá chứa 17 1.1.2.3 Đá chắn 17 1.2 Cấu tạo XY 19 1.2.1 Vị trí địa lý 19 1.2.2 Cấu trúc địa chất mỏ XY 20 1.2.2.1 Địa tầng .20 Đá móng trước Kainozoi 20 Trầm tích Kainozoi 20 Oligoxen dưới, Điệp Trà Cú ( P31) 20 Oligoxen trên, Điệp Trà Tân (P32) 21 Mioxen dưới, Điệp Bạch Hổ ( N11) 23 Mioxen giữa, Điệp Côn Sơn ( N12) 24 Mioxen trên, Điệp Đồng Nai ( N13) 24 Plioxen + Đệ tứ, Điệp Biển Đông ( N2 + Q) .24 1.2.2.2 Kiến tạo .24 1.2.3 Lịch sử nghiên cứu địa chất - địa vật lý 27 CHƯƠNG 28 CƠ SỞ LÝ THUYẾT 28 2.1 Sơ lược độ rỗng (Φ, PHI) 28 2.1.1 Định nghĩa 28 2.1.2 Phân loại 28 2.1.3 Các yếu tố ảnh hưởng đến độ rỗng 29 2.1.3.1.Kích thước hạt 29 2.1.3.2.Độ lựa chọn .30 2.1.3.3.Hình dạng hạt .30 2.1.3.4.Độ nén ép 30 2.1.4 Các phương pháp truyền thống xác định độ rỗng 30 2.1.4.1 Tính độ rỗng theo phương pháp mật độ 30 2.1.4.2.Tính độ rỗng theo phương pháp Neutron 31 2.1.4.3.Tính độ rỗng theo phương pháp Neutron – Mật độ 31 2.2 Tổng quan mạng nơ ron nhân tạo 32 2.2.1 Các khái niệm thành phần, cấu trúc nguyên lý hoạt động mạng nơron nhân tạo .32 Nơron nhân tạo (cấu trúc, nguyên tắc hoạt động) 32 Mạng nơron nhân tạo (cấu trúc, nguyên tắc hoạt động) .33 2.2.2 Các trình mô hình nơron nhân tạo 34 Quá trình ánh xạ 34 Quá trình luyện mạng 34 2.2.3 Một số quy tắc học .36 2.2.4 Một số đặc tính ANN 37 Chương 38 XÁC ĐỊNH ĐỘ RỖNG CÁC TRẦM TÍCH OLIGOXEN TRÊN MỎ XY TỪ TÀI LIỆU ĐVLGK VÀ MẪU LÕI BẰNG ANN 38 3.1 Cơ sở liệu 38 3.2 Xác định độ rỗng trầm tích Oligoxen mỏ XY phương pháp cổ điển 38 3.2.1 Xác định độ rỗng 38 3.2.2 Nhận xét .41 3.3 Xác định độ rỗng trầm tích Oligoxen mỏ XY ANN 42 3.3.1 Cấu trúc ANN 42 3.3.2 Xử lý số liệu đầu vào 42 3.3.2.1 Hiệu chỉnh độ sâu 42 3.3.2.2 Chuẩn hóa liệu 43 3.3.3 Chương trình hóa ANN 44 3.3.3.1 Chức ánh xạ .44 3.3.3.1 Chức huấn luyện 44 3.3.3.2 Chức huấn luyện kiểm tra 45 3.3.4 Xây dựng tập huấn luyện mạng tập kiểm tra 45 3.3.5 Huấn luyện mạng 46 3.3.6 Tính toán độ rỗng tầng Oligoxen giếng XY-4X .48 3.3.7 Tính toán độ rỗng tầng Oligoxen giếng XY-2X 51 3.3.8 Nhận xét .54 3.4 Xác định ANN tối ưu .54 3.5 Tính toán độ rỗng trầm tích Oligoxen mỏ XY ANN tối ưu .56 3.6 Kết luận 60 KẾT LUẬN VÀ KIẾN NGHỊ .62 TÀI LIỆU THAM KHẢO .63 PHỤ LỤC 65 Mã lệnh ngôn ngữ Matlab ANN 65 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ANN Mạng nơ ron nhân tạo DT Đường cong thời khoảng ĐVLGK Địa vật lý giếng khoan Epochs Thế hệ luyện mạng GR Đường cong độ phóng xạ tự nhiên, API Max Giá trị cực đại Min Giá trị cực tiểu NPHI Đường cong độ rỗng Neutron R Hệ số tương quan RHOB Đường cong mật độ đá SH w Mặt phản xạ địa chấn Trọng số Xin Giá trị đầu vào Xmax Giá trị đầu vào lớn Xmin Giá trị đầu vào nhỏ Yd Giá trị đầu mong muốn Ymax Giá trị đầu lớn Ymin Giá trị đầu nhỏ Yout Giá trị đầu DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC HÌNH VẼ 10 LỜI MỞ ĐẦU Tính cấp thiết đề tài Trong năm gần đây, ngành Dầu khí Việt Nam thành lập khẳng định vị kinh tế quốc dân cộng đồng nước sản xuất dầu khí giới Hiện nay, trở thành ngành công nghiệp mũi nhọn nghiệp công nghiệp hóa, đại hóa đất nước, góp phần đảm bảo an ninh lượng quốc gia, đóng góp quan trọng cho nghiệp đổi phát triển đất nước Vì vậy, công việc tìm kiếm thăm dò dầu khí công việc có vai trò quan trọng Xác định độ rỗng thành hệ bước bắt buộc việc đánh giá tiềm dầu khí vỉa nhằm phục vụ công tác tìm kiếm thăm dò dầu khí Các phương pháp xác định độ rỗng truyền thống tồn số hạn chế gây sai số việc tính toán độ rỗng thành hệ việc lựa chọn tham số đưa vào mô hình tính toán chưa phù hợp Chính mà việc tìm phương pháp giúp tính toán độ rỗng cách đáng tin cậy nhu cầu cấp thiết thực tế Chính vậy, đề tài “XÁC ĐỊNH ĐỘ RỖNG CÁC TRẦM TÍCH OLIGOXEN TRÊN MỎ XY TỪ TÀI LIỆU ĐVLGK VÀ MẪU LÕI BẰNG MẠNG NEURAL NHÂN TẠO” mang tính thực tiễn cần thiết cao Mục đích nghiên cứu luận văn Mục đích luận văn khai thác tính vượt trội việc xây dựng mối quan hệ phi tuyến tính đa chiều thống kê theo đa số mẫu ANN để xây dựng hệ phương pháp xác định độ rỗng tầng trầm tích Oligoxen cấu tạo XY từ tài liệu ĐVL-GK sử dụng độ rỗng mẫu lõi làm tham số mong muốn Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu luận văn độ rỗng tầng trầm tích Oligoxen mỏ XY phương pháp ANN Việc xác định độ thấm tiến hành dựa loại số liệu: số liệu ĐVLGK độ rỗng mẫu lõi Nội dung, phương pháp nghiên cứu - Thu thập tài liệu ĐVLGK tài liệu mẫu lõi mỏ nghiên cứu - Xác định độ rỗng thành hệ phương pháp truyền thống - Xây dựng ANN ngôn ngữ Matlab - Xây dựng tập huấn luyện tập kiểm tra cho ANN - Xác định độ rỗng thành hệ ANN xây dựng - So sánh kết tính độ rỗng ANN phương pháp cổ điển Khối lượng cấu trúc luận văn Luận văn tốt nghiệp hoàn thành với nội dung sau: Lời mở đầu 57 / Hình 15 Kết tính độ rỗng tầng Oligoxen giếng XY-2X ANN tối ưu 58 / Hình 16 Kết tính độ rỗng tầng Oligoxen giếng XY-3X ANN tối ưu 59 / Hình 17 Kết tính độ rỗng tầng Oligoxen giếng XY-4X ANN tối ưu Coi vỉa có Vsh > 0.4 vỉa sét, ta lập biểu đồ tần suất độ rỗng thành hệ tính theo ANN vỉa có Vsh nhỏ 0.4 Hình 18Biểu đồ tần suất độ rỗng tầng Oligoxen giếng XY-2X tính theo ANN 60 Hình 19Biểu đồ tần suất độ rỗng tầng Oligoxen giếng XY-3X tính theo ANN Hình 20Biểu đồ tần suất độ rỗng tầng Oligoxen giếng XY-4X tính theo ANN Từ hình 3.18, 3.19, 3.20 ta thấy giá trị độ rỗng thành hệ thuộc tầng Oligoxen có giá trị Vsh nhỏ 0.4 chủ yếu phân bố khoảng từ 0.11- 0.15 Đây khoảng giá trị độ rỗng phù hợp cho tầng chứa dầu khí 3.6 Kết luận - Độ rỗng tính theo ANN cho kết phù hợp với độ rỗng mẫu lõi độ rỗng tính theo phương pháp ĐVLGK thông thường Hơn độ rỗng tính theo ANN không bị ảnh hưởng việc lựa chọn mô hình tính toán phương pháp cổ điển Vì kết tính toán ANN có độ xác cao đáng tin cậy - Từ giá trị độ rỗng tính theo ANN, ta kết luận tầng Oligoxen cấu tạo XY tầng chứa tiềm với giá trị độ rỗng tập trung khoảng 0.11-0.15 61 -Việc huấn luyện ANN tìm hàm đại diện cho mối quan hệ số liệu ĐVLGK độ rỗng thành hệ bị ảnh hưởng lớn tượng khớp Khi tượng khớp xảy ra, mạng huấn luyện cố gắng tìm đường cong qua tất điểm liệu Lúc đó, mạng bị lừa nhiễu trình đo đạc mà cho kết mối quan hệ phức tạp bình thường Vì hạn chế tượng khớp tìm thời điểm dừng mạng hợp lý việc tối quan trọng để khiến kết ANN trở nên đáng tin cậy Trong luận án này, tác giả sử dụng tập kiểm tra làm phương pháp tìm điểm dừng mạng tránh tượng khớp - Đường cong độ rỗng tính theo ANN có phân dị ANN huấn luyện tập mẫu hạn chế số lượng phân bố mang tính đại diện cho tầng Oligoxen 62 KẾT LUẬN VÀ KIẾN NGHỊ Cấu tạo XY cấu tạo có triển vọng dầu khí cao, đặc biệt tầng trầm tích Oligoxen phát thấy có biểu dầu khí Trên sở nghiên cứu tổng hợp tầng trầm tích Oligoxen cấu tạo XY độ rỗng chúng ANN tác giả rút số kết luận sau: ANN lập trình ngôn ngữ Matlab xác định mối quan hệ phi tuyến tính đa chiều tổ hợp đường cong ĐVLGK độ rỗng thành hệ với độ xác cao Kết tính toán độ rỗng thành hệ ANN cho hệ số tương quan R với độ rỗng mẫu lõi cao nhiều so với dùng phương pháp cổ điển Điều chứng minh cho tin cậy xác kết tính toán độ rỗng thành hệ ANN Kết tính toán độ rỗng cho trầm tích Oligoxen mỏ XY ANN cho thấy phân bố độ rỗng tập trung khoảng 0.11-0.15 Điều chứng tỏ trầm tích Oligoxen mỏ XY tầng chứa tiềm với giá trị độ rỗng cao Mỗi đường cong ĐVLGK phản ánh khía cạnh độ rỗng Nói cách khác, chất độ rỗng phản ánh qua tổ hợp đường cong ĐVLGK Trong luận văn này, tác giả sử dụng tổ hợp đường cong ĐVLGK làm giá trị đầu vào cho ANN: GR, RHOB, DT, NPHI với đường cong RHOB, DT, NPHI đường cong độ rỗng GR đường cong thể thạch học thành hệ Mối quan hệ phi tuyến tính đa chiều đường cong GR, RHOB, DT, NPHI, với độ rỗng theo tài liệu mẫu lõi mà hệ ANN xây dựng có hệ số tương quan cao (R>0,8) chứng tỏ tổ hợp đường cong ĐVLGK phản ánh tính chất độ rỗng tầng trầm tích nghiên cứu ANN tối ưu xây dựng với lớp: lớp đầu vào, lớp ẩn lớp đầu Lớp đầu vào cấu trúc nơ ron mang số liệu từ đường cong ĐVLGK: GR, RHOB, DT, NPHI Lớp trung gian gồm có nơ ron Lớp đầu có nơ 63 ron cho kết độ rỗng tính toán Hiện tượng khớp hạn chế nhờ việc tác giả xây dựng tập số liệu kiểm tra mang tính đại diện cao sử dụng kỹ thuật phân tích sai số điểm để tìm điểm dừng mạng hợp lý Tính xác ANN phụ thuộc hoàn toàn vào số lượng mẫu, tính đại diện mẫu chất lượng số liệu tổ hợp đường cong ĐVLGK Với số lượng mẫu mẫu thu không đại diện hết tầng địa chất nghiên cứu việc dự đoán độ rỗng đoạn không mẫu trở nên thiếu xác Thêm vào nhiễu tồn tài liệu ĐVLGK nhân tố gây sai số cho ANN nhiễu đánh lừa việc học mạng khiến mạng học quan hệ phức tạp quan hệ vốn có Trên sở việc nghiên cứu ANN nhằm xác định độ rỗng tầng Oligoxen mỏ XY, tác giả đề xuất số kiến nghị sau: Để nâng cao tính xác tin cậy phương pháp, tập mẫu phải đủ lớn, mẫu lấy mang tính đại diện cho vỉa khác ANN có tính ứng dụng cao việc đưa vào để phục vụ cho trình minh giải tài liệu ĐVLGK lĩnh vực dầu khí tiềm năng, cần có thêm nhiều đề tài nghiên cứu sâu vào phương pháp tiếp cận Do phương pháp áp dụng minh giải tài liệu ĐVLGK nên luận án không tránh khỏi thiếu sót hạn chế Tác gỉa xin gửi lời cảm ơn chân thành tới thầy hướng dẫn, cán phòng NCTH&VLĐ-Viện NCKH&TK dầu khí biển VIETSOVPETRO, thầy cô môn Địa vật lý, khoa Dầu khí, trường Đại học Mỏ Địa chất Hà Nội tận tình giúp đỡ để luận án hoàn thành tốt đẹp TÀI LIỆU THAM KHẢO [1] Lê Hải An (2000), “Phương pháp tính độ thấm từ tài liệu địa vật lý giếng khoan mạng nơron”, Hội nghị khoa học lần thứ 14, 64 dầu khí, Hà Nội, tr 5-7 [2] Nguyễn Văn Chức (2008) Tổng quan mạng neural network [3] Trần Lê Đông, F.A Kirieev (1998), ”Đá hỏa thành móng mỏ Bạch Hổ đặc điểm hình thành đới collector móng”, Tạp chí Dầu khí, (6), Hà Nội, tr.2-12 [4] Phạm Huy Long, Trịnh Long(1996), Báo cáo nguồn gốc thành tạo, đặc điểm nứt nẻ, đứt gãy đá móng granitoid vùng mỏ Bạch Hổ, Rồng vùng kế cận, liên đoàn địa chất 6, HCM [5] Hoàng Văn Quý, nnk (2006), “Thân dầu đá móng nứt nẻ hang hốc mỏ Bạch Hổ phần mềm chuyên dụng BASROC 3.0”, Hội thảo khoa học, Hội khoa học kỹ thuật Địa vật lý Việt nam, Hà Nội [6] Hà Văn Sơn (2004), Giáo trình lý thuyết thống kê, Nxb Thống kê, tpHCM [7] Phạm Anh Tuấn (2001), Đặc điểm tính chất vật lý, di dưỡng thủy động học đá chứa dầu có cấu trúc phức tạp, điều kiện mô hình hóa áp suất nhiệt độ, Luận án tiến sỹ Địa Chất, trường đại học Mỏ Địa Chất, Hà Nội [8] Trần Đức Lân (2005), “Giải pháp nơron nhân tạo phương pháp làm giàu tham số nghiên cứu địa chất”, Tạp chí Dầu Khí, Hà Nội, (3), tr.23-31 [9] Trần Đức Lân (2008), “Xác định độ thấm đá móng nứt nẻ mỏ Bạch Hổ từ tài liệu địa vật lý giếng khoan độ thấm khoảng phương pháp nơron nhân tạo”, Tuyển tập báo cáo Hội nghị Khoa học Công nghệ Viện Dầu khí Việt Nam – 30 năm phát triển hội nhập, Nxb Khoa học kỹ thuật, Hà Nội, Quyển 1, tr.517-522 [10] Trần Đức Lân, Hoàng Văn Quý, Hoàng Xuân Bản (2009), “Xác định độ thấm đá móng nứt nẻ mỏ Bạch Hổ từ tài liệu địa vật lý giếng khoan độ thấm khoảng phương pháp nơron nhân tạo”, Tạp chí Dầu Khi, Hà Nội, (3), tr.34-37 [11] Trần Đức Lân, “ Nghiên cứu độ thấm đá móng Granitoit mỏ Bạch Hổ mạng nơ ron nhân tạo”( 2010) 65 [12] Andrew W Moore.(2001), preventing overfitting”, “Cross-validation Associate for Professor School detecting and of Computer Science Carnegie Mellon University, www.cs.cmu.edu/~awm [13] Robrt C.Earlougher, Jr (1977), Advances in well test analysis, Marathon Oil co New York, USA [14] Simon Haykin, Neural Networks - A Comprehensive Foundation PHỤ LỤC Mã lệnh ngôn ngữ Matlab ANN Chương trình Trainingandvalidation %%tham so dau vao global Output weights datax1 datay1 output num_input num_hidden num_output num_datatest hidden Outputtest ; num_input=4; 66 num_hidden=8; num_output=1; num_connection=(num_input+1)*num_hidden+(num_hidden+1)*num_output; num_datatraining=65; num_epochs=50; num_epochstest=15; num_evaluate=num_datatraining*num_epochs; A=ones(num_epochs,1); S=0.01; %nhap du lieu tu file.dat %datay ma tr?n g?m num_data hàng , c?t PHIcore : ?ây t?p Desire datay=importdata('datay_scenario2.2_training.dat'); Ymax=max(datay);Ymin=min(datay); dataytransform=S+(datay-Ymin)./(Ymax-Ymin).*(1-2*S); datayevaluate=[]; for i=1:num_epochs A(i,1)=1; datayevaluate=[datayevaluate;dataytransform]; end %datax ma tr?n g?m num_data hàng , c?t :4 c?t GR,NPHI,DT,RHOB bias ???c %gán cho datax=[importdata('datax_scenario2.2_training.dat') ones(num_datatraining,1)]; data_minmax=[55 1.9 53 0.06;140 2.63 122 0.5]; for k=1:4 datax(1:num_datatraining,k)=2.*(datax(1:num_datatraining,k)data_minmax(1,k))./(data_minmax(2,k)-data_minmax(1,k))-1; end dataxevaluate=[]; for i=1:num_epochs A(i,1)=1; dataxevaluate=[dataxevaluate;datax]; end %ma tran output hang : sum,value,ek,MSE,diff,g',bk Output=ones(7,num_evaluate); output=ones(7,num_output); %ma tran so input layer ==> hidden layer weights=importdata('weights_8_num_hidden_500epochstest.dat'); %%ma tran hidden layer hang : sum, value,g'(y), bj error hidden=ones(4,num_hidden+1); %%test num_datatest=17; %nhap du lieu tu file.dat %datay ma tr?n g?m num_data hàng , c?t PHIcore : ?ây t?p Desire dataytest=importdata('datay_scenario2.2_test.dat'); %datax ma tr?n g?m num_data hàng , c?t :4 c?t GR,NPHI,DT,RHOB bias ???c %gán cho dataxtest=[importdata('datax_scenario2.2_test.dat') ones(num_datatest,1)]; for k=1:4 dataxtest(1:num_datatest,k)=2.*(dataxtest(1:num_datatest,k)data_minmax(1,k))./(data_minmax(2,k)-data_minmax(1,k))-1; end %ma tran output hang : sum,value,ek,MSE,diff,g',bk 67 Outputtest=ones(7,num_datatest); R=ones(num_epochstest,1); %%chay for k=1:num_epochstest for i=1:(num_epochs*num_datatraining) datax1=dataxevaluate(i,1:num_input+1); datay1=datayevaluate(i,1:num_output); [output,weights]=runtraining(weights,hidden,datax1,datay1); Output(1:7,i)=output; end Output(2,(num_evaluate-num_datatraining+1):num_evaluate)=Ymin+(Output(2, (num_evaluate-num_datatraining+1):num_evaluate)-S).*((Ymax-Ymin)/(12*S)); for j=1:num_datatest datax1=dataxtest(j,1:num_input+1); datay1=dataytest(j,1:num_output); [output]=run_output(weights,hidden,datax1,datay1); Outputtest(1:7,j)=output; end Outputtest(2,1:num_datatest)=Ymin+(Outputtest(2,1:num_datatest)S).*((Ymax-Ymin)/(1-2*S)); R(k,1)=corr(dataytest(1:num_datatest,num_output),Outputtest(2,1:num_datat est)'); end figure(1) plot(R) weights Chương trình Runoutput global Output weights datax1 datay1 output num_input num_hidden num_output num_data num_datatest hidden Outputtest ; num_input=4; num_hidden=7; num_output=1; num_connection=(num_input+1)*num_hidden+(num_hidden+1)*num_output; S=0.01; num_datatest=1756; %nhap du lieu tu file.dat %datay ma tr?n g?m num_data hàng , c?t PHIcore : ?ây t?p Desire dataytest=ones(num_datatest,1); 68 Ytestmax=max(dataytest);Ytestmin=min(dataytest); dataytest=S+(dataytest-Ytestmin)./(Ytestmax-Ytestmin).*(1-2*S); %datax ma tr?n g?m num_data hàng , c?t :4 c?t GR,NPHI,DT,RHOB bias ???c %gán cho dataxtest=[importdata('dataxANN_run_output_CT4X_Oligocen_2.dat') ones(num_datatest,1)]; data_minmax=[55 1.9 53 0.06;140 2.63 122 0.5]; for k=1:4 dataxtest(1:num_datatest,k)=2.*(dataxtest(1:num_datatest,k)data_minmax(1,k))./(data_minmax(2,k)-data_minmax(1,k))-1; end %ma tran output hang : sum,value,ek,MSE,diff,g',bk Outputtest=ones(7,num_datatest); weights=importdata('weights_7_num_hidden_Rmax.dat'); for j=1:num_datatest datax1=dataxtest(j,1:num_input+1); datay1=dataytest(j,1:num_output); [output]=run_output(weights,hidden,datax1,datay1); Outputtest(1:7,j)=output; end Outputtest(2,1:num_datatest)=0.0191+(Outputtest(2,1:num_datatest)S).*((0.1782-0.0191)/(1-2*S)); Outputtest(2,1:num_datatest)' Chương trình Trainning %%tham so dau vao global Output weights datax1 datay1 output num_input num_hidden num_output num_data hidden ; num_input=4; num_hidden=4; num_output=1; num_connection=(num_input+1)*num_hidden+(num_hidden+1)*num_output; num_data=60; num_epochs=100; num_evaluate=num_data*num_epochs; A=ones(num_epochs,1); S=0.02; %nhap du lieu tu file.dat 69 %datay ma tr?n g?m num_data hàng , c?t PHIcore : ?ây t?p Desire datay=importdata('datay_CT4x_oligocen.dat'); Ymax=max(datay);Ymin=min(datay); dataytransform=S+(datay-Ymin)./(Ymax-Ymin).*(1-2*S); datayevaluate=[]; for i=1:num_epochs A(i,1)=1; datayevaluate=[datayevaluate;dataytransform]; end %datax ma tr?n g?m num_data hàng , c?t :4 c?t GR,NPHI,DT,RHOB bias ???c %gán cho datax=[importdata('datax_CT4x_oligocen.dat') ones(num_data,1)]; for k=1:4 datax(1:num_data,k)=2.*(datax(1:num_data,k)min(datax(1:num_data,k)))./(max(datax(1:num_data,k))min(datax(1:num_data,k)))-1; end dataxevaluate=[]; for i=1:num_epochs A(i,1)=1; dataxevaluate=[dataxevaluate;datax]; end %ma tran output hang : sum,value,ek,MSE,diff,g',bk Output=ones(7,num_evaluate); output=ones(7,num_output); %ma tran so input layer ==> hidden layer weights=[0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01 ;0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01;0.01]; %%ma tran hidden layer hang : sum, value,g'(y), bj error hidden=ones(4,num_hidden+1); %matran MSE MSE=[]; %%chay for i=1:(num_epochs*num_data) datax1=dataxevaluate(i,1:num_input+1); datay1=datayevaluate(i,1:num_output); [output,weights]=runtraining(weights,hidden,datax1,datay1); Output(1:7,i)=output;MSE=[MSE;output(4,1)]; end Output(2,(num_evaluate-num_data+1):num_evaluate)=Ymin+(Output(2, (num_evaluate-num_data+1):num_evaluate)-S).*((Ymax-Ymin)/(1-2*S)); figure(1) plot(datay,'r');hold on plot(Output(2,(num_evaluate-num_data+1):num_evaluate)) B=[datay(1:num_data,num_output) Output(2,(num_evaluatenum_data+1):num_evaluate)'] weights a=size(datayevaluate) Hàm Runoutput function [output]=run_output(weights,hidden,datax1,datay1) 70 global output weights datax1 datay1 num_input num_hidden num_output num_data hidden ; for i=1:num_hidden, hidden(1,i)=datax1(1,1:num_input+1)*weights((num_input+1)*(i-1)+1: (num_input+1)*i,1); hidden(2,i)=1/(1+exp(-hidden(1,i))); hidden(3,i)=hidden(2,i)*(1-hidden(2,i)); end for j=1:num_output, output(1,j)=sum(hidden(2,1:num_hidden).*weights((num_input+1)*num_hidden+ (num_hidden+1)*(j-1)+1:(num_input+1)*num_hidden+(num_hidden+1)*j-1,1)') +weights((num_input+1)*num_hidden+(num_hidden+1)*j,1); output(2,j)=1/(1+exp(-output(1,j))); output(3,j)=datay1(1,j)-output(2,j); output(4,j)=output(3,j)^2; output(5,j)=log((1+output(3,j))/(1-output(3,j))); output(6,j)=output(2,j)*(1-output(2,j)); output(7,j)=output(5,j)*output(6,j); end end Hàm Runtraining function [output,weights]=runtraining(weights,hidden,datax1,datay1) global output datax1 datay1 num_input num_hidden num_output num_data hidden weights ; for i=1:num_hidden, hidden(1,i)=datax1(1,1:num_input+1)*weights((num_input+1)*(i-1)+1: (num_input+1)*i,1); hidden(2,i)=1/(1+exp(-hidden(1,i))); hidden(3,i)=hidden(2,i)*(1-hidden(2,i)); end for j=1:num_output, output(1,j)=sum(hidden(2,1:num_hidden).*weights((num_input+1)*num_hidden+ (num_hidden+1)*(j-1)+1:(num_input+1)*num_hidden+(num_hidden+1)*j-1,1)') +weights((num_input+1)*num_hidden+(num_hidden+1)*j,1); output(2,j)=1/(1+exp(-output(1,j))); output(3,j)=datay1(1,j)-output(2,j); output(4,j)=output(3,j)^2; output(5,j)=log((1+output(3,j))/(1-output(3,j))); output(6,j)=output(2,j)*(1-output(2,j)); output(7,j)=output(5,j)*output(6,j); end for i=1:num_hidden, hidden(4,i)=output(7,1)*weights((num_input+1)*num_hidden+i,1)*hidden(3,i) ; end %%new weights for j=1:num_hidden; for i=1:num_input+1 weights((num_input+1)*(j-1)+i,1)=hidden(4,j)*datax1(1,i) +weights((num_input+1)*(j-1)+i,1); end end for i=1:num_hidden+1, 71 weights((num_input+1)*num_hidden+i,1)=output(7,1)*hidden(2,i) +weights((num_input+1)*num_hidden+i,1); end end ... nhu cầu cấp thiết thực tế Chính vậy, đề tài “XÁC ĐỊNH ĐỘ RỖNG CÁC TRẦM TÍCH OLIGOXEN TRÊN MỎ XY TỪ TÀI LIỆU ĐVLGK VÀ MẪU LÕI BẰNG MẠNG NEURAL NHÂN TẠO” mang tính thực tiễn cần thiết cao Mục đích... văn độ rỗng tầng trầm tích Oligoxen mỏ XY phương pháp ANN Việc xác định độ thấm tiến hành dựa loại số liệu: số liệu ĐVLGK độ rỗng mẫu lõi Nội dung, phương pháp nghiên cứu - Thu thập tài liệu ĐVLGK. .. luyện mạng 34 2.2.3 Một số quy tắc học .36 2.2.4 Một số đặc tính ANN 37 Chương 38 XÁC ĐỊNH ĐỘ RỖNG CÁC TRẦM TÍCH OLIGOXEN TRÊN MỎ XY TỪ TÀI LIỆU ĐVLGK VÀ