Trong học máy, tại sao các siêu ký tự được sử dụng thay vì các chỉ số?


20

Tôi đang tham gia khóa học của Andrew Ng về Machine Learning thông qua Coursera . Đối với các phương trình, siêu ký tự được sử dụng thay vì các chỉ số. Ví dụ: trong phương trình sau được sử dụng thay cho x i :x(i)xi

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2

Rõ ràng, đây là thực tế phổ biến. Câu hỏi của tôi là tại sao sử dụng siêu ký tự thay vì đăng ký? Các bản sao đã được sử dụng để lũy thừa. Cấp cho tôi dường như có thể phân biệt giữa các trường hợp sử dụng siêu ký tự và lũy thừa bằng cách chú ý xem có dấu ngoặc đơn hay không, nhưng nó vẫn có vẻ khó hiểu.


4
Tôi nghi ngờ có lẽ bởi vì một số người làm khoa học máy tính không thành thạo ký hiệu toán học tiêu chuẩn, và do đó tạo nên ký hiệu riêng của họ. Đôi khi các chuyên gia tính toán cũng làm điều này và thật khó chịu khi bạn có những khái niệm phức tạp hơn.
rocinante

5
ilập chỉ mục trên kích thước tập dữ liệu, hoặc trên các yếu tố của vectơ x? Nếu trước đây, đó là hoàn toàn tiêu chuẩn. Nếu sau này, đó là hoàn toàn không chuẩn. Và lý do tại sao siêu ký tự được sử dụng là bởi vì đôi khi bạn muốn tham chiếu đến phần tử của vectơ bằng cách sử dụng chỉ mục.
Rex Kerr

4
@rocinante lol không, đó là vì các đăng ký đã được sử dụng để lập chỉ mục các vectơ.
Neil G

4
@rocinante Điều đó khá tự phụ. Điều gì về vectơ chống chỉ định / ký hiệu Einstein ?
Will Vousden

4
@rocinante Tôi phải nhắc lại những người khác nhấn mạnh rằng từ ngữ của bạn là không may. Tất cả chúng ta đều có xu hướng coi những gì địa phương và quen thuộc là tiêu chuẩn.
Nick Cox

Câu trả lời:


26

Nếu biểu thị một véc tơ x R m thì x i là một ký hiệu tiêu chuẩn cho tôi -thứ toạ độ x , tức là x = ( x 1 , x 2 , ... , x m ) R m .xxRmxiix

x=(x1,x2,,xm)Rm.

Nếu bạn có một tập hợp vectơ như vậy, làm thế nào bạn biểu thị một vectơ thứ i ? Bạn không thể viết x i , điều này có ý nghĩa tiêu chuẩn khác. Vì vậy, đôi khi mọi người viếtnixi và đó là tôi tin tại sao Andrew Ng làm điều đó.x(i)

I E

x(1)=(x1(1),x2(1),,xm(1))Rmx(2)=(x1(2),x2(2),,xm(2))Rmx(n)=(x1(n),x2(n),,xm(n))Rm.

Tôi không đồng ý, nhưng thường sử dụng , nghĩa là cho các phép đo lặp lại. xij
Vách đá AB

1
Có, nhưng tương đương với x ( i ) j của tôi ; cái gì sẽ tương đương với x ( i ) ? xijxj(i)x(i)
amip nói rằng Phục hồi lại

1
xi.j=1nxij/m

1
xmn(i) seems the most intuitive way to do so. Therefore the notation stays consistent when moving from vectors to matrices.
josh

2
@JAB Yes, it's to make the notation more explicit ("type hinting" as you say). Of course one can agree to use xi for the i-th vector and xij for the j-th element of the i-th vector. There are various conventions possible, this is just one of them. I am not even saying it is the best one, just explaining the rationale behind it.
amoeba says Reinstate Monica

11

The use of super scripts as you have stated I believe is not very common in machine learning literature. I'd have to review Ng's course notes to confirm, but if he's putting that use there, I would say he would be origin of the proliferation of this notation. This is a possibility. Either way, not to be too unkind, but I don't think many of the online course students are publishing literature on machine learning, so this notation is not very common in the actual literature. After all, these are introductory courses in machine learning, not PhD level courses.

What is very common with super scripts is to denote the iteration of an algorithm using super scripts. For example, you could write an iteration of Newton's method as

θ(t+1)=θ(t)H(θ(t))1θ(t)

where H(θ(t)) is the Hessian and θ(t) is the gradient.

(...yes this is not quite the best way to implement Newton's method due to the inversion of the Hessian matrix...)

Here, θ(t) represents the value of θ in the tth iteration. This is the most common (but certainly not only) use of super scripts that I am aware of.

EDIT: To clarify, in the original question, it appeared to suggest that in the ML notation, x(i) was equivalent to statistic's xi notation. In my answer, I state that this is not truly prevalent in ML literature. This is true. However, as pointed out by @amoeba, there is plenty of superscript notation in ML literature for data, but in these cases x(i) does not typically mean the ith observation of a single vector x.


1
The clash with the use of parenthesized/bracketed superscripts for iteration counts (a notation that is in common use across a wide range of areas) is a really important thing to raise.
Glen_b -Reinstate Monica

2
It is also commonly used to indicate the index of the sample in the training set, which is like the iteration but not exactly the same because you usually end up iterating through your training set many times.
Rex Kerr

3
I've also seen iteration counts noted using subscripts (an+1=an+1) as well as in line (a(n+1)=a(n)+1). Which is why, when using some specific notation, I'll usually put something at the start to disambiguate (e.g. saying "in the following series, blah blah blah" and then putting the math). Thus, whatever notation is in use, readers can (hopefully) intuit the meaning for potentially ambiguous cases rather than having to guess based on the conventions they know.
JAB

1
I agree with @JAB. More generally, I don't think it's heinous for people who will be writing and using code to borrow notation from software in mathematical treatments. For example, and contentiously, computing people are way ahead of many mathematical groups in using clean notation such as (x>0), to be evaluated as 1 if true and 0 if false, instead of unnecessary formalisms such as I(x>0); here I am merely following behind Donald Knuth.
Nick Cox

@NickCox I generally only see the I(x>0) form when it comes to probability; otherwise, x>0 is just an inequality constraint. When it comes to mathematical equations, they're either broken up into piecewise representations or they just represent the equation itself as an inequality as doing otherwise would induce ambiguity. (It's similar to how = in math is more subtle than either = or == in most programming languages; it introduces a constraint or definition rather than an actual assignment or equality check.)
JAB

4

Superscripts are already used for exponentiation.

In mathematics superscripts are used left and right depending on the field. The choice is always historical legacy, nothing more. Whoever first got into the field set the convention of using sub- or superscripts.

Two examples. Superscripts are used to denote derivatives: f(x)(n)

In tensor algebra both super and subscripts are used heavily for the same thing like Rii could mean i rows and j columns. It's quite expressive: Tik=RijCjk

Also I remember using scripts before letters (prescripts) in Physics, e.g. jiBkl. I think it was with tensors.

Hence, the choice of superscripts by Ng is purely historical too. There's no real reason to use or not use them, or prefer them to subscripts. Actually, I believe that here ML people are using tensor notation. They definitely are well versed in the subject, e.g. see this paper.


1
Another example for your point: Einstein notation
Neil G
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.