2009-02-26 30 views
11

Trong Peter Alfred's article về đa biến dữ liệu phân tán, ông đã đề cập, rằng từ một loạt các đề án chỉ có rất ít được thực sự phổ biến trong các học viên. Ông đặt tên cho ví dụ của Shepard và Hardy Multiquadrics. Nhưng bài viết đó đã gần 20 năm rồi, và điều gì thực sự thú vị, là những phương pháp được sử dụng rộng rãi hiện nay.Phương pháp đa biến nội suy nào là tốt nhất để sử dụng thực tế?

Nếu bạn có bất kỳ kinh nghiệm nào về việc sử dụng một số lược đồ nội suy không gian, hãy nói về nó.

UPD: Để làm cho câu hỏi này cạnh tranh hơn, tôi đã khôi phục nó. Đó là "Phương pháp đa biến nội suy đa biến mà bạn từng sử dụng?"

+0

Chúng tôi có thể có liên kết đến bài viết không, nếu nó trực tuyến? –

+0

Chắc chắn. Tôi đã cập nhật nội dung câu hỏi bằng liên kết của người trồng cây. – akalenuk

Trả lời

6

Tôi đã sử dụng Kriging trong quá khứ, với dữ liệu phân tán đi kèm với ước tính chính xác ở mỗi mẫu. Dường như là một kỹ thuật mạnh mẽ xứng đáng được sử dụng rộng rãi hơn bên ngoài thế giới địa lý.

2

ứng dụng duy nhất tôi đã thấy là một trong mã số littleCMS (một công cụ quản lý màu nguồn mở).

lần đầu tiên tôi kiểm tra nó, nó chỉ thực hiện nội suy tuyến tính trong một trục và sau đó được nội suy giữa kết quả đó và điểm trong trục kia. Tôi vừa mới tải xuống và có vẻ phức tạp hơn rất nhiều. không thể so sánh với bài viết bạn đề cập, nhưng có thể muốn kiểm tra nó, nó nằm trong tệp cmslut.c.

+0

Mã bạn đang xem đang triển khai nội suy tứ diện. Mathworks có một bài viết [http://blogs.mathworks.com/steve/2006/11/24/tetrahedral-interpolation-for-colorspace-conversion/] về lý do tại sao đó là một kỹ thuật tốt để chuyển đổi không gian màu. Đối với các ứng dụng khác, số dặm của bạn có thể thay đổi. –

1

Tôi đã làm việc với làm mịn dữ liệu phân tán 3D để thao tác trên bề mặt LINK. Điều này liên quan đến nhiều điểm và tôi muốn một bề mặt rất mịn, vì vậy quá trình đầu tiên tìm thấy một bề mặt thứ hai phù hợp nhất với dữ liệu và sau đó là một giai đoạn thư giãn nơi các điểm được lắp lên bề mặt. Đây không phải là một bề mặt nội suy cho dữ liệu gốc, nhưng, đó là một cách để giảm thứ tự của nội suy một cách tối ưu.

Phương pháp liên quan đến hoạt động trên các khu vực ghép đôi phù hợp với đơn vị xấp xỉ thứ hai.

Đặc điểm thú vị khác của phương pháp là các điểm là các đỉnh của hình tam giác và kết nối được giữ nguyên trong quá trình làm mịn.

15

(Điều này sẽ lâu, trừ khi tôi chỉ hết hơi nước.)

Đầu tiên, một vài nhận xét về dữ liệu không phân tán. (Xem câu trả lời tham chiếu littleCMS)

Có hai loại nội suy màu phổ biến. Một vài năm trước, nội suy tuyến tính ba chiều (nội suy tuyến tính của sản phẩm tensor) là một cách tiếp cận chung cho nội suy bảng màu. Nội suy tuyến tính thực sự có thể được thực hiện như một tập tuần tự của các nội suy một chiều, đầu tiên trên một trục, sau đó dọc theo trục thứ hai, v.v.

Nhiều năm trước, chúng tôi nhận thấy rằng nội suy tuyến tính giới thiệu các tạo tác trong chụp ảnh màu khi áp dụng một số loại biến đổi. Các vấn đề được nhìn thấy trong trung tính. Một giải pháp là di chuyển đến một nội suy đơn giản, trong 3-d, bằng cách phân tích một khối lập phương thành 6 tứ diện. Trong các kích thước n, khối lập phương đơn vị sẽ được chia thành các giai thừa đơn giản (n). Có những sự giải phẫu khác của một khối lập phương, nhưng phong cách đặc biệt này đảm bảo rằng đường chéo chính luôn là một cạnh được chia sẻ cho tất cả các đơn giản. Điều này lần lượt phục hồi hành vi tốt cho trung lập, khi áp dụng cho một số bảng tra cứu màu sắc.

Bây giờ hãy để tôi đi vào câu hỏi về nội suy dữ liệu phân tán thực sự.

Những người khác đã đề cập đến một loạt các chương trình. Kriging, multiquadrics, phương pháp dựa trên khoảng cách là một vài. (Khi tôi thực hiện một số công việc trong quá khứ với các lược đồ này, tôi thực sự ưa thích các phương thức đa thức nghịch đảo.) Tất cả những điều này thực sự chỉ là các biến thể của các phương thức hàm cơ sở hướng tâm, một lược đồ chung. Phương pháp RBF có điểm tốt và xấu. Họ thường sẽ tạo ra một nội suy trơn tru, điều này tất nhiên phụ thuộc vào chức năng cơ sở cụ thể được lựa chọn, cũng như cho dù bạn chọn để hạn chế sự hỗ trợ. Các phương thức RBF cũng cho phép bạn ngoại suy, ít nhất là xa như sự hỗ trợ của các phần tử cơ sở hướng tâm sẽ mở rộng. Nếu các yếu tố cơ sở được phép vô hạn trong phạm vi, thì không có ràng buộc rõ ràng nào về ngoại suy sẽ được áp dụng. (Ngoại suy nói chung là một điều xấu để làm.) Một vấn đề với phương pháp RBF là chúng đòi hỏi giải pháp của các hệ phương trình tuyến tính lớn, và các hệ phương trình này thường là các ma trận dày đặc. Điều này có nghĩa là kích thước của vấn đề, về số lượng các điểm dữ liệu bạn có thể xử lý có xu hướng bị giới hạn bởi đại số tuyến tính. Nếu thay vào đó, bạn giới hạn sự hỗ trợ bằng cách cắt bớt các yếu tố cơ bản, sau đó các ma trận có thể trở nên thưa thớt. Điều này sẽ cải thiện đại số tuyến tính nếu bạn sử dụng gói ma trận thưa thớt cho giải pháp. Đồng thời, khoảng cách hỗ trợ trở thành một tham số phi tuyến mà bạn phải kiểm soát. Đồng thời, các phương thức như multiquadrics và các phương thức multiquadric nghịch đảo có thể có tham số phi tuyến thứ cấp điều khiển hình dạng của các phần tử cơ bản. Kriging có vấn đề tương tự, và tôi gộp tất cả các phương pháp này lại với nhau.

Làm những vấn đề này, tất cả các phương pháp mà tôi đã xếp loại dưới dạng biến thể RBF thường bị giới hạn về số điểm mà chúng sẽ xử lý thoải mái. Tùy thuộc vào cách bạn đối phó với mọi thứ và lượng bộ nhớ có sẵn, giới hạn đó thường có thể lên đến vài nghìn điểm.

Một vấn đề khác với lớp chung của phương pháp RBF là những gì tôi gọi là intrapolation. Đây là một thần thoại mà tôi đã tạo ra từ nhiều năm trước để mô tả nội suy qua một lỗ tương đối lớn trong dữ liệu. Trong thực tế, có thể thường có vấn đề ngay cả khi nội suy qua các lỗ nhỏ hơn trong dữ liệu. Những phương pháp này, bởi vì chúng được mịn ở một mức độ nào đó, có thể giới thiệu extrema không mong muốn (đỉnh lớn hoặc thung lũng) vào bề mặt nội suy. Đây là một vấn đề phổ biến với các nội suy thậm chí 1-d, thường được coi là hiện vật chuông với nội suy khối hoặc đa thức khối, và chắc chắn được thấy với các nội suy chuỗi Fourier. Vấn đề ở kích thước cao hơn là thậm chí nhận ra rằng nó đã thực sự xảy ra, vì việc vẽ các bề mặt trong hơn ba chiều có xu hướng khó khăn.

Nếu bạn có nhiều điểm hơn giới hạn đó hoặc nếu các đồ tạo tác chuông này không thể chấp nhận được thì các phương pháp khác thường là lựa chọn tốt hơn. Nếu bạn sẵn sàng sử dụng một nội suy tuyến tính, thì giải pháp đơn giản nhất trong các thứ nguyên cao hơn là bắt đầu với một tessellation dữ liệu. Vì vậy, trong 3 chiều, tessellate dữ liệu (thường là một tessellation delaunay) vào tứ diện. Điều này là khá hiệu quả để làm, và có rất nhiều công cụ được tìm thấy cho mục đích này. Đó là sau đó một vấn đề đơn giản để nội suy bất kỳ điểm cá nhân. Chỉ xác định điểm đơn giản nào nằm trong, tính toán tọa độ barycentric như trọng số nội suy trong đơn, và tạo thành tổ hợp tuyến tính tương ứng của các giá trị hàm tại mỗi đỉnh của đơn vị tìm thấy. Đây là tất cả cực kỳ nhanh chóng và hiệu quả.

Nhược điểm của các phương pháp dựa trên tessellation này là chúng thường hạn chế bạn đến lồi lồi của các điểm dữ liệu, và xấu, nếu dữ liệu của bạn xảy ra nằm trong một miền không lồi, thì nội suy cũng có thể làm những điều kỳ lạ ở một số vùng trong miền của bạn. Một vấn đề khác với sơ đồ mà tôi đã đề cập ở trên, là nội suy sẽ chỉ là chắp thêm tuyến tính, nhưng một khi bạn di chuyển vào thứ nguyên cao hơn thì mọi thứ trở nên khó chịu nhanh chóng. Các phương pháp khác được tìm thấy cho nội suy trơn dựa trên một tessellation, nhưng chúng sẽ nỗ lực nhiều hơn và do đó ít phổ biến hơn.

Sự cân bằng cơ bản phải rõ ràng ở đây. Nếu bạn cần một nội suy trơn tru và chỉ có một vài điểm, thì phương pháp RBF thường được chọn. Chúng đơn giản, dễ sử dụng, v.v.Phương pháp thực tế được chọn thường chỉ là vấn đề thuận tiện, hoặc thậm chí là thói quen. Tôi đã sử dụng một công cụ trước và hạnh phúc, tôi có thể sẽ vui vẻ với nó một lần nữa. Vì câu hỏi là phương pháp nào là "tốt nhất cho sử dụng thực tế", tôi sẽ chỉ ra rằng tốt nhất là một từ rất chủ quan khi được áp dụng trong ngữ cảnh. Mục tiêu của bạn trong bài toán nội suy là gì? Bạn sở hữu bộ kỹ năng nào? Bộ công cụ nào bạn biết cách sử dụng? Bạn sẽ làm việc với môi trường nào? Tất cả những yếu tố này sẽ ảnh hưởng đến lựa chọn của bạn về phương pháp tốt nhất.

Nếu bạn có nhiều điểm dữ liệu và tốc độ là bản chất, nhưng độ mịn tối ưu không quan trọng, thì bạn thường sẽ tìm kiếm một nội suy đơn giản. Tất nhiên, nếu bạn có đủ điểm, thì bản chất tuyến tính từng phần của con thú ít quan trọng hơn. Nội suy tuyến tính từng phần ở đây có tính chất tuyệt vời trong một số trường hợp nó không bao giờ có thể tạo ra extrema trên bề mặt của bạn mà không tồn tại trong dữ liệu. Đối với một số vấn đề, đặc điểm màu sắc, ví dụ, đây là điều quan trọng nhất.

Một vấn đề khác là có tiếng ồn. Trong khi sự hiện diện của tiếng ồn thường là một tín hiệu mà làm mịn của một số loại là cần thiết, không phải tất cả các bề mặt như vậy đã làm mịn được áp dụng. Bất kỳ nhà điều hành làm mịn đôi khi sẽ làm mịn các tính năng quan trọng của dữ liệu. Điều này xảy ra bởi vì chúng ta có thể nghĩ về một toán tử làm mịn như một bộ lọc thông thấp. Hành vi tần số cao thường là tiếng ồn, nhưng nó cũng có thể chỉ là một ngón chân nhọn hoặc vai trên bề mặt của tôi mà tôi không thể đủ khả năng để mất. Nếu đây là một vấn đề, sau đó bạn có thể sẵn sàng sử dụng một nội suy ngay cả trong sự hiện diện của đôi khi tiếng ồn đáng kể. Trong sự kiện đó, tôi sẽ đề nghị rằng nội suy đơn giản nhất, thấp nhất là tốt nhất. Một nội suy trơn tru, toàn cầu hơn cũng sẽ có xu hướng khuyếch đại bất kỳ nhiễu nào trong dữ liệu, vì vậy nếu bạn tìm kiếm nội suy phương sai thấp nhất trong sự hiện diện của nhiễu, nó thường sẽ là một nội suy tuyến tính.

Tất nhiên, có nhiều loại splines tấm mỏng, nội suy hay không. Khi bạn vượt ra ngoài một chiều, các tùy chọn của bạn cũng sẽ mở rộng, ít nhất là nếu bạn sẵn sàng thực hiện công việc.

Tôi sẽ kết thúc ở đây trước khi biến thành sách.

+1

Cảm ơn bạn rất nhiều vì câu trả lời của bạn! Vấn đề là, tôi hiện đang làm việc trên một sơ đồ đơn giản với sự mượt mà có thể điều chỉnh như là một phần của nghiên cứu tiến sĩ của tôi, và tôi chỉ muốn biết đó là một vấn đề thực tế hay không. Cảm ơn bạn một lần nữa. – akalenuk

Các vấn đề liên quan