ì¬ì©ìê° ìŒë° Hilbert ê³µê°ì ëí ì¬ì©ì ì ì ëŽì ì ì ìíŽìŒ íë ê²œì° ìŽë¬í ì íì ìŒë°íì ëí Baseì íì¬ ìíë 묎ìì ëê¹? https://github.com/JuliaLang/julia/issues/16573 ì êŽë šìŽ ìì§ë§ ë ìŒë°ì ìž ë¬žì ì ëë€. ëŽ êŽì¬ì¬ë ë°°ìŽìŽ ìë ìë¡ìŽ ì íì êŽí ê²ì ëë€.
dot
ì ìŽëŠì inner
$ ë¡ ë°êŸžê±°ë inner(x,y)
륌 x
ì y
ê°ì²Ž ì¬ìŽì ìŒë°ì ìž ëŽë¶ ì íìŒë¡ ì ìíëë¡ ì¬ì©ììê² ì§ìíê³ ì¶ìµëë€.
inner(x::AbstractVector, y::AbstractVector) = dot(x, y)
ë³ê²œìŽ í©ëŠ¬ì ìž ê²œì° Julia v1.0ì ìŒë¶ê° ë ì ììµëê¹?
ì¬ì© ì¬ë¡ì ëíŽ ì¡°êž ë ì€ëª
íê³ íší€ì§ì ì ìíë ëì Baseì ëë ê²ìŽ ì ìµí ìŽì 륌 ì€ëª
íŽ ì£Œìê² ìµëê¹? 구첎ì ìž ìê° ê°ì¥ ì¢ìµëë€. ëìì ë¡ëë íší€ì§ìì ì¬ë¬ inner
ì ìê° íìí©ëê¹?
ìŽë¬í ìíì ê³µê°ì ëí ê³µì ìží°íìŽì€ë¥Œ ê°ë ê²ìŽ ì¬ì©ìê° ì í ìì€í
ì ë ì íì©íë ë° ëììŽ ë ê²ìŽëŒê³ ìê°í©ëë€. ì륌 ë€ìŽ, íŽë¬ì€í°ë§ ë°©ë²ìŽ 몚ë ë©ížëŠ ê³µê°ìì ìëí ê²ìŒë¡ ììí©ëë€. ëŽ ì íì ëŽë¶ ì íìŒë¡ ì ìí ì ìë€ë©Ž ìŠì Clustering.jl
ì ìŽì ì ì»ì ì ììµëë€(íší€ì§ê° ê·žì ë°ëŒ ìì ë í). ë€ë¥ž ë§ì 거늬 êž°ë° ëë í¬ì êž°ë° ìê³ ëŠ¬ìŠë ìŒë°íí ì ììµëë€.
구첎ì ìž ìë¡ ì€ë êµ¬ì± ë°ìŽí°ì ëí ì§ì€ë©ížëŠ¬ë¥Œ ì ìíë €ê³ ìëíë©Žì ìŽ ì í ì¬íì ë°ê²¬íìµëë€. https://github.com/juliohm/CoDa.jl ì°šëŒëŠ¬ ì ìë €ì§ inner
íšì륌 ì 묞ìŒë¡ íê³ ì¶ìµëë€. ë€ë¥ž ì¬ëìŽ ìì§ ëª»íë ëŽ ìì ì ìží°íìŽì€ë¥Œ ì ìíë ê²ë³Žë€ Baseì ì ìëìŽ ììµëë€.
Hilbert ê³µê° ì íì ëíŽ dot
륌 íì¥íì§ ìë ìŽì ë 묎ìì
ëê¹? ëë ê·žê²ìŽ ìŒë°ì ìž ëŽë¶ ì íì ìŒëìëê³ ì€ê³ëìë€ê³ íì í©ëë€.
ëŽì ì ê°ë
ë³Žë€ ëŽì ì ê°ë
ìŽ ë ì격í©ëë€. íìë ìŒë° ê³µê°ì ëíŽ ì ìëì§ë§ ëŽì ì ì í êž°ë°ìŒë¡ ì ìëë ì¢íê³ì ê°ë
ìŽ ìì ëë§ ì ìë©ëë€. dot(x,y)
ì ì믞ë x'*y
ì
ëë€. ì¬êž°ì x
ë° y
ë ë°ì¹Žë¥Žíž ìžê³ìì ê°ì²Žì ì¢í 륌 ëíë
ëë€. ì ìë ìŒë°ì ìŒë¡ ë ìŒë°ì ìž(ë°ëì ì ííê±°ë ì íŽëŠ¬ëê° ìë) ê³µê°ìì ìë£ë¥Œ ë€ë£šë ë° êŽì¬ìŽ ìêž° ë묞ì ìí êµê³Œìììë ëŽì ìŽëŒë ì©ìŽë¥Œ ê±°ì ìžêžíì§ ììµëë€.
ë 구ë³íêž° ìíŽ ëŽì <x,y>
(ëë inner(x,y)
)륌 ê°ë íë² ë¥Žíž ê³µê°ìì ê°ì²Žë 묎íí ì ìê³ ìë¯žë¡ x'*y
ì ì ì©ëì§ ììµëë€. ì륌 ë€ìŽ, êž°ë¥ ë°ìŽí° ë¶ììì ê°ì²Žë f
ë° g
íšììŽê³ ëŽë¶ ì íì ìŒë°ì ìŒë¡ ìì¹ ì ë¶( inner(f,g) = quadrature(f*g)
)ì íµíŽ ì»ìµëë€. ìŽ ì°ì°ì ëŽì ìŽëŒê³ ë¶ë¥Žë ê²ì ì€íŽì ìì§ê° ììµëë€.
CoDa.jl
íší€ì§ìì ì§ì í ë ë€ë¥ž ìë êµ¬ì± ë°ìŽí°ì
ëë€. 컎í¬ì§ì
ê°ì²Žë x'*y
ìì
ìŽ ìë¯žê° ìë ëšì ìžê³ì ììµëë€. ê·žë¬ë 컎í¬ì§ì
ì ì¢íì íšê» ëŽì ì ì ì©í ì ìë ë€ë¥ž êž°ííìŒë¡ 맀ííë ë° ì¬ì©í ì ìë ë±ì¶ ë³í(ë¡ê·ž ë¹ìš ë³í)ìŽ ììµëë€. ì¢íë¡ ìì
í íìë ìì§ë§ ìŽ ë¶ìŒììë ìŒë°ì ì
ëë€. 결곌ë ê°ì²Žê° ì¡Žì¬íë ìë ê³µê°ìŒë¡ ë€ì ë³íë ì ììµëë€.
ìžìŽìì dot
ëŒë ì©ìŽë¥Œ ì ì§íë ë° ìŽì ìŽ ìë€ê³ ìê°íì§ë§ ìŽì ë²ì 곌ì ížíì±ì ìì²íë©Ž ìŒë°í inner(x::AbstractVector, y::AbstractVector) = dot(x,y)
ê° ì벜íê² ìëí©ëë€.
ìŽ ë³ê²œì ëí ë°ë ì견ì ëíŽ ììží ì€ëª íŽ ì£Œìê² ìµëê¹?
ìŽ ë³ê²œì ëí ë°ë ì견ì ëíŽ ììží ì€ëª íŽ ì£Œìê² ìµëê¹?
ì°ëŠ¬ë ìŒë°ì ìŒë¡ Baseì ìë¡ìŽ 공공 êž°ë¥ì ì¶ê°íêž° ìíŽ ìë¹í ìì ì ë¹ì±ì ì구í©ëë€. ê·žê²ìŽ ë°ëì
ëë€. ìŽê²ì InnerProducts
íší€ì§ìì ì ê³µí ì ììµëë€. ì ìžìŽ ì첎ì ëŽì¥ëìŽìŒ í©ëê¹? ìŽê²ì @andreasnoack ìŽ ììì ì§ë¬ží 첫 ë²ì§ž ì§ë¬žìŽììµëë€. "ìŽë¬í ìíì ê³µê°ì ëí íìì ìž ìží°íìŽì€ë¥Œ ê°ë ê²ìŽ ì¬ì©ìê° ì í ìì€í
ì ë ì íì©íë ë° ëììŽ ë ê²ìŽëŒê³ ìê°í©ëë€"ëŒë ë€ì 몚íží ëëµì ì»ììµëë€. íší€ì§ì ì ìë ìží°íìŽì€ê° Baseì ì ìë ìží°íìŽì€ë³Žë€ ë íìì ìŒ ìŽì ê° ììµëë€. Base.inner
ê° ììŒë©Ž InnerProducts.inner
ê° ì ê³µíì§ ìë ê²ì 묎ìì
ëê¹? ìŽê²ì ì€ëë ¥ ìë ëëµì ê°ì§ ì ìë ì§ì í ì§ë¬žìŽì§ë§ ê·ž ëëµìŽ 묎ììŒì§ 몚륎Ʞ ë묞ì ì§ë¬žì ë°ë ê²ì
ëë€.
ëë Baseê° ìë ë€ë¥ž ê³³ìì ëŽì 곌 ê°ì Ʞ볞ì ìž ìíì ê°ë
ì ì ìíë ì¢ì 죌ì¥ì ë³Žì§ ëª»íìµëë€. 죌ì ì²ì€ìŽ 곌í 컎íší
ì¬ì©ììž ìžìŽë ì¬ë°ë¥ž ì©ìŽë¥Œ ì¬ì©íë ê²ìŽ ì¢ìµëë€. norm
Base.LinAlg
ì ì ìëìŽ ìê³ ê°ì ìœížížì ìë inner
ê° íší€ì§ì ì ìëìŽìŒ íë ìŽì ë 묎ìì
ëê¹? ìŽë¬í ë¶ìŒì¹ ìžìë ìžìŽìë ìŽë¯ž dot
ê° ììµëë€. ê·žëì ì ë ìŒë°ì ìž ê°ë
ìŽ ìëëŒ í¹ì í ê²ì ê°ì žìŒ íëì§ ê¶êží©ëë€.
Ʞ볞 ìžìŽë¡ ê°ë¥í 몚ë ìíì ê°ë
ì ìíìëê¹? Baseì ì ìë ê²ìŽ ìë€ê³ íŽì ì¬ëë€ìŽ ì못ë ì©ìŽë¥Œ ì¬ì©íëë¡ ê°ìíì§ë ììµëë€. norm
íšìë LinAlg
ìì ì ìëê³ ì¬ì©ëêž° ë묞ì LinAlg
ìì ëŽë³Žë
ëë€. dot
ì ì ì¬í©ëë€. dot
ì ìŽëŠì inner
ë¡ ë°ê¿ìŒ íë€ê³ ì ìíìê² ìµëê¹?
Ʞ볞 ìžìŽë¡ ê°ë¥í 몚ë ìíì ê°ë ì ìíìëê¹?
ëë ì ëë¡ ê·žë ê² ë§íì§ ììë€.
Baseì ì ìë ê²ìŽ ìë€ê³ íŽì ì¬ëë€ìŽ ì못ë ì©ìŽë¥Œ ì¬ì©íëë¡ ê°ìíì§ë ììµëë€.
ê·žë ì§ ìë€ê³ íì í©ëë€. ì못ë ì©ìŽë¥Œ ì¡°ì¥íë ê²ìŽ 묞ì ì ëë€. ìíì ë°°ê²œìŽ ëí ì¬ëë€ì Baseìì ì ì 볎Ʞ ë묞ì ì ì¬ì©ë²ì ì±íí ê²ì ëë€. ëŽì ì ê°ë ì ëíëŽë "ëŽì "ìŽëŒë ì©ìŽì ì¬ì©ì ì¬ë°ë¥Žì§ ììµëë€. ëí ì못ë ì©ìŽê° ëšêžŽ ìŽë¬í íí°ë¥Œ ìì íêž° ìíŽ ëëë¡ ê³ êµ°ë¶í¬íë ìí 컀뮀ëí°ìë íŽë¡ìµëë€. ì ìžëì íìë€ì ì©ìŽë¥Œ ì¬ë°ë¥Žê² ìŽíŽíêž° ìíŽ ì§ìì ìŒë¡ ì€ëë ì± ì ì°žì¡°íŽìŒ í©ëë€. ìŽê²ì ì¬ì€ìŽ ìëìŽìŒ í©ëë€.
ì ì ìŽëŠì innerë¡ ë°ê¿ìŒ íë€ê³ ì ìíê³ ììµëê¹?
ê·žê²ì ìŽë¯ž ëŽ ìê°ì í° ê°ì ìŽ ë ê²ì
ëë€. êž°ë¥ ë° êµ¬ì± ë°ìŽí°ì ëíŽ ììì ì€ëª
í 몚ë ì륌 ì°žì¡°íììì€. ìŽ ì»€ë®€ëí°ì ì¬ëë€ì ìì
ìì dot
ëŒë ì©ìŽë¥Œ ì¬ì©íì§ ììµëë€. "ì "ì ë€ë¥ž ìŽë€ ê²ë³Žë€ 컎íší° 곌í ì©ìŽì ê°ê¹ìµëë€.
dot
ì ìŽëŠì $ inner
$ë¡ ë°êŸžë ê²ì dot
ìžì inner
륌 Baseì ì¶ê°íë ê²ê³Œë ìë¹í ë€ë¥ž ì ìì
ëë€. ê·žê²ì "ì íí ì©ìŽ" ì§ë¬žì ë ê°ê¹ìµëë€. ì¬ë¬ë¶ê³Œ ë€ë¥ž linalg ì¬ëë€ìŽ íŽëª
íŽìŒ í ê²ì
ëë€. ë¹ë¡ ì°ëŠ¬ê° ìŽê²ì í ë² ìì ê±°ë¡ ê°ìíê³ dot
ê° ìŽ íšìê° êµ¬ííë ê²ì ëí ì¬ë°ë¥ž ìŽëŠìŽëŒê³ ê²°ë¡ ì§ì ê²ì êž°ìµíë ê² ê°ìµëë€.
https://github.com/JuliaLang/julia/issues/22227 ë° https://github.com/JuliaLang/julia/pull/22220 ìì ìŽì ëí ìœê°ì í ë¡ ìŽ ìììµëë€.
ì ì ìŽëŠì ëŽë¶ë¡ ë°êŸžë ê²ì ì ìžì ëŽë¶ë¥Œ Baseì ì¶ê°íë ê²ê³Œë ìë¹í ë€ë¥ž ì ìì ëë€.
ìŽê²ìŽ ìŽ ì€ë ëì 첫 ë²ì§ž ë©ìì§ìì ì ìí ê²ì ëë€.
ëë ì ì ìŽëŠì innerë¡ ë°êŸžê±°ë, ìë§ë ì¬ì©ììê² inner(x,y)륌 ê°ì²Ž xì y ì¬ìŽì ìŒë°ì ìž ëŽë¶ ê³±ìŒë¡ ì ìíëë¡ ì§ìíê³ ì¶ìµëë€.
ë°ë³µí©ëë€. ëŽì ì ì¬êž°ì ë
Œìíê³ ìë ìì
ì ëí ì못ë ì©ìŽì
ëë€. ëŽë¶, ìžë¶, ì€ì¹ŒëŒ ê³±... ìŽë€ì ìíì ê°ì²Žì
ëë€. "ëŽì "ì ê³ì° ê°ì²Žì
ëë€. ë ê°ì ì«ì ìíì€ë¥Œ ê°ì žì€ê³ x1*y1 + x2*y2 + ... xn*yn
, ë€ë¥ž ìíì ê³µê°ìì ìžëªšìë ì°ì°ì ìíí©ëë€.
ëë Base.dot
륌 ížì¶íêž° ìí íŽë°±ê³Œ íšê» Base.inner
륌 ì¶ê°í ê²ìŒë¡ 볎ìŽë ë¹ì ìŽ ì ìí ë ë²ì§ž ìµì
ì ì§ì€íìµëë€. ë ìµì
몚ë ê°ë¥íì§ë§ ë ë€ ì ë¹ííŽìŒ í©ëë€. ì ìì
ì ì¶ê°íë €ë©Ž íší€ì§ì í¬íšë ì ìë ìŽì ê° íìí©ëë€(ìŽ í ë¡ ì ìŽêž° ë¶ë¶ì ëí ëŽì©). ìŽëŠì ë°êŸžë €ë©Ž dot
ê° ì못ë ìŽëŠìŽê³ inner
ê° ì¬ë°ë¥ž ìŽëŠìžì§ ê²°ì íŽìŒ í©ëë€(ëí ëŽì©ìŽ 묎ììŒë¡ ë°ëìëì§).
@juliohm íì¬ Base
륌 ì¶ìíê³ íší€ì§ ì¬ì©ì ì¥ë €íë €ë ì ê·¹ì ìž ë
žë ¥ìŽ ììì (ì¬)ë§í ê°ì¹ê° ììµëë€. ìŽ ê²œì° dot
ë íì€ Juliaìì ì ê³µëë ì í ëìíì ì°žì¬íë 몚ë ì íì ëíŽ ì¬ë°ë¥ž ê² ê°ìµëë€ (ì: Number
ë° Array
- ì, , 몚ë 겜ì°ì ì í êž°ë° - ë°ëŒì ë ëì ì íìŽ ìì ì ìì§ë§ ì©ìŽìì ì€ì 륌 ì ì§ë ë€ê³ ìê°íì§ ììµëë€. ì ë ìŽ ì ìì ë°ëíì§ ììµëë€. ê·žë¬ë ë³ê²œì ëí "ì ì¬ì " ì íì 겜íí ì ìë ìŽì 륌 ëª
íí íêž° ìíŽ ìŽê²ì ì§ì íê³ ì¶ììµëë€.
ëí ìë¹í ìì Julia ì ê· ìŽë¯Œìê° ëŽì ì ìµìí ì ìì§ë§ ëŽì ìë ìµìíì§ ìì ì ìë€ë ì (ì: ëíìì ìœê°ì 묌늬íì íì§ë§ ìí ì ê³µì ìë)ì ìŒëì ëìŽìŒ í ëª ê°ì§ ìŽì ë ììµëë€. dot
륌 ì ì§íììì€(ì€ì ì°ì°ìê° ìŽì íŽë¹íë€ë ê²ì ë§í ê²ë ìê³ - inner
ì 맀íí ìë ìì§ë§ ìŽë ìœê° ë ëª
íí©ëë€). ì°ëŠ¬ë ëí outer
íšìë ë€ìí ë€ë¥ž ê°ë¥í ìì
ì ê°ì§ê³ ìì§ ììµëë€.
ë°ëŒì ìŽê²ì Base
(ëë LinAlg
)ì ë£ë ê²ìŽ ìŽê²ì ì¬ì©ì íší€ì§ì ë£ë ê²ë³Žë€ ì격íê² ë ëì ë°©ë²ì ëí í©ëŠ¬ì ìž ì¬ë¡ë¥Œ ë§ë€ìŽìŒ íë ë¶ëŽìŽ ììµëë€. 죌ë ìŽì ë ë€ë¥ž ì¬ëë€ìŽ ê³µì íê³ íì¥í ì ìë ìží°íìŽì€ë¥Œ ì ê³µíë ê² ê°ìµëë€ . í©ëŠ¬ì ìž ììœì
ëê¹? Clustering.jl ì ìŒë° ìœëê° ëŽë¶ ì í곌 íšê» ìëíëë¡ íë ê²ì ëí 죌ì¥ì ꜀ ì€ëë ¥ìŽ ììŽ ë³Žì
ëë€. ëí LinAlg
륌 stdlib íší€ì§ë¡ ë¶í íë ê²ì²ëŒ 볎ìŽë 맥ëœìì - LinearAlgebra
ëŒë íší€ì§ë¥Œ ìì±íë©Ž inner
륌 í¬íšíê² ëìŽ êž°ì©ëë€.
ì견ì ê³µì íŽ ì£Œì @andyferris ìê² ê°ì¬ë늜ëë€. ëë ì íì ë§€ì° ëª ííê² ë³Žê³ ìëë°, ìŽê²ì ëŽê° ë³ë¡ í¥ë¶íì§ ìë ê²ì ëë€. ê·žëŒìë ë¶êµ¬íê³ ìŽ í¹ì ì ììŽ ìŽë»ê² ìœë ìŠê°ë¡ ìŽìŽì§ëì§ ê¶êží©ëë€. ëìê²ë ì¶ìíê° í¬ê² ê°ì ë ìœëì ì¬ìí ë³ê²œì²ëŒ 볎ì ëë€. Clustering.jlì ìì ë ë§ì ê² ì€ íëìŒ ë¿ì ëë€. ëŽë¶ ì íì ê°ë ìŽ ì¡Žì¬íë ììì Julia ì í곌 íšê» ìëíëë¡ ë§ë€ ì ìë 몚ë 컀ë êž°ë° ë°©ë²ì ìê°íŽ 볎ììì€. MultivariateStats.jlìë ë§ì ê²ë€ìŽ ììµëë€.
LinAlg
륌 ë³ëì íší€ì§ë¡ ë¶í íë ê²ì ëí ì견ì ëíŽìë ìíì ì°ì¶ë¬Œì 캡ìííêž°ì ì¢ì ì¥ììž ê² ê°ë€ë ë° ëìí©ëë€. ìŽ ë¯žëì LinearAlgebra
íší€ì§ë Ʞ볞ì ìŒë¡ Julia ìžì
ìì ê°ì žì€êž° ë묞ì 몚ë ì¬ì©ìê° inner
, outer
ë±ì ê°ë
ì ì¡ìžì€í ì ìë€ê³ ê°ì í©ëë€. 곧.
ì, íì€ ëŒìŽëžë¬ëŠ¬ë 몚ë Julia ìì€í
ìŽë¯žì§ì íšê» ë¹ëëë©° Ʞ볞ì ìŒë¡ ì¬ì© ê°ë¥í©ëë€. ì ìŽë v1.x ì늬ìŠì ê²œì° ì묎ë ê° ììµëë€ using LinAlg
륌 ì
ë ¥í íìLinearAlgbebra
.
ëª
íí íìë©Ž íì€ Juliaì íšê» ë¡ëëë¯ë¡ ì묎ê²ë ì€ì¹í íìê° ìì§ë§ ëŽë³ŽëŽë ìŽëŠì ì»ìŒë €ë©Ž using LinAlg
륌 ìì±íŽìŒ í©ëë€.
using LinAlg
*
ë©ìë ë±ì ì»ì ê²ìŽêž° ë묞ì ìŽê²ìŽ ìŽìíŽì§ëë€. (ìŠ, LinAlg
ë íŽì íì
ëë€).
ë€, Ʞ볞ì ìŒë¡ ì¬êž°ìì ì ì ê·žë €ìŒ í©ëë€. Baseë LinAlg륌 íŽì ìŽ ìë ê²ìŒë¡ ë§ëë ë° íìí ë§íŒ ì í ëì êž°ë¥ì ì ìíŽìŒ íë¯ë¡ Array
ë° *
ë묞ì matmulìŽ Baseì ì ìë©ëë€.
구첎ì ìž ì륌 ë€ìŽ íì¬ ìží°íìŽì€ë¡ ìŽë»ê² íŽê²°í ì ìëì§ ë¬ŒìŽë³Žê² ìµëë€. ìë§ë ìŽê²ìŽ ì 륌 ìíŽ ëª ííê² í ì ìì ê²ì ëë€.
목íë êµ¬ì± ë°ìŽí°ë¡ ììž ë¶ìì ìííë ê²ì
ëë€. ëë Composition
ëŒë íì
곌 ì곡 ê³µê°ì ëŽì ì ê°ì§ê³ ìë€. ëë ë§ì ìí(ì: ìì ìí)ì ìì§íì¬ í° Vector{Composition}
ì 몚ë ë£ìµëë€(ì: êµ¬ì± = %water, %grain, %air). ìŽì ìŽ ë°ìŽí° 벡í°ì ëíŽ ë€ë¥ž íší€ì§(ì: MultivariateStats.jl)ì 구íë ììž ë¶ì ìê³ ëŠ¬ìŠì ížì¶íë €ê³ í©ëë€. Ʞ볞ì ìŒë¡ inner
ì íì ê°ì žì€ì§ ìê³ ìŒë°ì ìŒë¡ ìŽë»ê² 구íí©ëê¹?
ë§ì§ë§ ì견ìì ëŽê° ìŽíŽí ê²ì MultivariateStats.jl곌 CoDa.jlìŽ ëªšë LinAlg.jlì ìì¡ŽíŽìŒ íë€ë ê²ì
ëë€. MultivariateStats.jlì ì¢
ìì±ì inner
ìŽëŠì ë²ìë¡ ê°ì žì€ë ê²ì
ëë€. CoDa.jlì ì¢
ìì±ì MultivariateStats.jlìì ížì¶í ì ìë inner
ì ëí ë©ìë륌 ì ìíë ê²ì
ëë€. ê·žê²ìŽ ë¹ì ìŽ ì ìíë ê²ì
ëê¹?
Composition{D}
ë +
ë° *
ìëì D
ì°šì ë²¡í° ê³µê°ìž ê² ê°ìµëë€.
ëë ìŽì€ ë²¡í° ê³µê°ì ì ìíê³ ì¶ì ì í¹ì ë°ì ê²ì ëë€.
ë°ëŒì adjoint(::Composition) -> DualComposition
ë° *(::DualComposition, ::Composition) -> scalar
(íì¬ inner
)륌 ì ìí ì ììµëë€. DualComposition
ì ìì Composition
륌 ë€ê³ ìë ê² ìžìë ë§ì ìŒì í íìê° ììµëë€.
https://en.wikipedia.org/wiki/Dot_product ì 첫 ë²ì§ž 묞ì¥ì dot
ê° ë ê°ì iterableì ëí ìì
ìŽ ë ì ììì ìì¬ íë ê² ê°ìµëë€. ìŽë¥Œ ì¬ê·ì ìŒë¡ ë§ë€ê³ Number
ì ëíŽ ì ìíê³ Number
ì AbstractArray
ì ëíŽ ê²¹ì¹ë ì¶ì ì í ëì íšìë¡ inner
륌 ì ìí ì ììµëë€.
@andyferris ìê² ê°ì¬í©ëë€. ìŽì€ ê³µê°ì ëí ê·íì ìê°ì ê°ì¬ë늜ëë€. íì§ë§ ìŽ ìì ì ëíŽ ìë¡ìŽ ì íì ìì¡Žíì§ ìë ê²ìŽ ì¢ìµëë€. ìµì¢ ì룚ì ì ë¶íìíê² ë³µì¡í©ëë€.
ëŽê° ìŽíŽíë ë° êŽì¬ìŽ ìë ê²ì ë€ì곌 ê°ì ìŽì ì ëë€.
inner(x,y) = sum(x.*y)
norm(x) = sqrt(inner(x,x))
export inner, norm
êž°ì§ì ì€ì ê²ì íìíì§ ììµëê¹? ìŽê²ìŽ ì 묞íí ìžìŽ ì¬ì©ì륌 ìíŽ ìŒë°ì ìŒë¡ íšì ìŽëŠì ì ìíë ë° íìí ì ë¶ëŒê³ ê°ì í©ëë€. íµì¬ ê°ë°ìì êŽì ì ìŽíŽíë €ë ì§ì í êŽì¬ìŒë¡ ìŽë¬í ì§ë¬žì íê³ ììì ëª ì¬íììì€. ëíê° ë€ì ìë±í ë°©í¥ìŒë¡ íë¬ê°êž° ì ì ìŽ ë§ì íê³ ì¶ë€.
ìŒë°ì ìŒë¡ ìíì êŽì¬ìŽ ìë ì¬ëì êŽì ìì ìŽë¬í ê°ë
ì Ʞ볞ì ìŒë¡ ëŽë³ŽëŽì§ ìê³ ëì LinAlg
ëŽë¶ì ì ìíë ê²ìŽ ë¶ìì°ì€ëœê² ë껎ì§ëë€. ì ë LinAlg
륌 ë°°ìŽ ì íì ëí ìŽë¬í ê³ êž ê°ë
ì 구í ìŽëŒê³ ìê°í©ëë€. ìë§ë ëŽ ì 첎 ìì
ì ë°°ìŽì ëí ì í ëìíì íìë¡ íì§ ìì§ë§ íší€ì§(ì: MultivariateStats.jl, Clustering.jl) ì ë°ì ê±žì¹ ëŽì ê°ë
ì ìŽì ì ì¬ì í ë늎 ì ììµëë€. ëí LinAlg
륌 ëŽ íší€ì§ì ì¢
ìì±ìŒë¡ í¬íšíê³ ì¶ì§ ìì ì ììµëë€. ê·žë ì§ ìêž° ë묞ì
ëë€.
ë ê°ì¡°íìë©Ž ë°°ìŽê³Œ 묎êŽí ëŽì ê°ë
ìŽ ììµëë€. ìŽ ê°ë
ì Baseì export inner
묞ìŒë¡ ííë©ëë€. inner(x,y) = sum(x.*y)
ì¢í륌 ëíëŽë ë°°ìŽê³Œ ì ì¬í ê°ì²Žì ëí ëŽë¶ ì íì 구í ìŽ ììµëë€. ìŽ ìì
ì íìì ë°ëŒ ìì ê°ìŽ Baseìì fallback ë°©ììŒë¡ ì ìí ì ììµëë€.
ì¬ì© ì¬ë¡ì ë ë€ë¥ž ìë Krylov ë°©ë²ì ëë€. ì륌 ë€ìŽ ëŽë¶ ê³±ìŽ ìë íšì ê³µê°ìŽ ìë ê²œì° Krylov ë°©ë²ì ì¬ì©íì¬ íŽë¹ 묎í ì°šì íšì ê³µê°ì ìì ì í ì°šì ë¶ë¶ ê³µê°ìì ì í 묞ì ëë ê³ ì 묞ì 륌 ê·Œì¬íí ì ììµëë€.
ëë 벡í°/íë² ë¥Žíž ê³µê°ì íì±íì§ë§ <: AbstractArray
ì ìŒë¶ê° ìë ëë§ì ê°ì²Žë¥Œ ê°ì§ê³ ììµëë€. ììê° N>1
ìž ë°°ìŽë ë²¡í° ê³µê°ì íì±íê³ Krylov ë°©ë²ìì '벡í°'ë¡ ì¬ì©í ì ìë ë¹ì ìì vecdot
ë° vecnorm
ì¬ì©ì ìì¡Žíê² ëììµëë€. ëŽì 곌 ê·ë²ì ìŒë°íë ê°ë
ìŽë€. ê·žëì ì ë íšì륌 ì í ì°ì°ìë¡ ì¬ì©íë Krylov ë©ìë륌 ì¬ì©íì¬ íší€ì§ë¥Œ ê°ë°íŽ ììµëë€. ì¬êž°ì '벡í°'ë 몚ë ì íìŽ ë ì ììµëë€. ëš, íŽë¹ ì íì ê°ì²Žë vecdot
, vecnorm
ë° ëª ê°ì§ë¥Œ ì§ìí©ëë€. ë€ë¥ž ê²ë€( scale!
, zero
, ...). ê·žë¬ë Baseìì ìŽë¬í ê°ë
ìŽ ì믞íë ë°ë¥Œ ëšì©íë ê²ìŒ ì ììŒë¯ë¡ ì¬êž°ìì ì¬ë°ë¥ž ìží°íìŽì€ë¥Œ ë°ë¡ì¡ë ê²ìŽ ì¢ìµëë€.
ì€ë¥žìªœ - vecdot
ì ìŽëŠì inner
ë¡ ë°ê¿ ì ììµëë€.
(ìŽì norm
ê° íì inner
ì ìŒì¹íë íë ¬ì ëíŽ norm
륌 ì€ì ë¡ matrixnorm
ëŒê³ ë¶ë¬ìŒ íëì§ ë§ì°í ê¶êží©ëë€. norm
ìì ì§íëë ìí©ì ìŒë°ííë ë° ìœê°ì ìŽë €ìì ìŒìŒí€ê³ ìì)
ì¬ì€, ìŒë°ì ìž ë²¡í°ì ê°ì ê°ì²Žì ê²œì° ë²¡í° ê³µê°ì ì°šìì 쿌늬íë ê²ë ì ì©í©ëë€(ì: Krylov ì°šììŽ ëŽ ìì ì¬ì© ì¬ë¡ìì ì 첎 ê³µê°ì ì°šìë³Žë€ í¬ì§ ìììŒ íšì íìžíêž° ìíŽ). ì€ì²© ë°°ìŽì ìë ì¬êž°ì length
ê° ì¬ë°ë¥ž ê°ë
ìŽ ìëì 볎ì¬ì€ëë€. ìŠ, ìŽë¬í 겜ì°ì êžžìŽì ëí ì¬ê·ì ê°ë
ìŽ íìí©ëë€.
ìŽì ì€ì²© ë°°ìŽì ìŒë° 벡í°ë¡ ì¬ì©íë ìì ê²œì° vecdot
ë° vecnorm
ë #25093ìì ë
Œìë ë°ì ê°ìŽ ìŽë€ 겜ì°ìë ëŽì ë° ê·ë²ì ì¬ë°ë¥ž ê°ë
ë ìëëë€. ìŠ, vecdot
ë° vecnorm
륌 ì¬ê·ì ìŒë¡ ížì¶íì§ ììµëë€. ìŒë°ì ìž ëŽë¶ ì í ë° íì€ êž°ë¥ìŒë¡ ìŽë¬í êž°ë¥ì ëí ëì íŽìì #25093ì ìŽë°í ê²ì
ëë€. ê·žë¬ë ìŽê²ìŽ ìŽë¬í êž°ë¥ìŽ ìëë ë°©ì곌 ë€ë¥Œ ì ìë ê² ê°ìµëë€(ëì ìííë €ë ìëê° íì€íì§ ìì).
ë°ëŒì íší€ì§ ì ë°ì ê±žì³ ì¬ì©í ì ìë ìŒêŽë ìží°íìŽì€ê° íìíë€ë ë° ëìí©ëë€. ë°ëŒì ì€ì ìì¹ì ìí ê²ì
ëë€(ìë§ë Baseìë ìì§ë§ íì€í íì€ ëŒìŽëžë¬ëŠ¬ì ììŽìŒ í©ëë€. ì륌 ë€ìŽ using VectorSpaces
). ìŽëŠ ì§ì 곌 êŽë šíì¬ ë ê°ì§ ìµì
ìŽ íìë©ëë€.
ìµì
1(ì§êžê¹ì§ ëŽ íŽì):
ì ëì¬ vec
ë ê°ì²Žë¥Œ ìŒë° 벡í°ë¡ íŽìí ë íŽë¹ ê°ì²Žì ìì±ì ëíëŽë¯ë¡
vecdot
ë° vecnorm
ê° ìì ëììµëë€(PR #25093).veclength
ì ìê° ì¶ê°ëììµëë€.ìµì 2(ìë§ë ë ëì): ìíì ìŒë¡ ë ì íí ìŽëŠì ì¬ì©í©ëë€.
inner
dimension
norm
ë¡ ë¬Žìì í ê¹ì?ë§ì§ë§ìŒë¡ @stevengj ìê² íì ì¹ë©Ž íì€í ì ì©í ìê²¬ìŽ ìì ê²ì ëë€. ë¶ížíìë€ë©Ž ì£ì¡í©ëë€.
ìŽëŠì ìŽ ëªšë ê² ì€ìì ê°ì¥ í¥ë¯žë¡ìŽ ë¶ë¶ì
ëë€. ììì íë² ë¥Žíž ê³µê°ì ëí ìŒë° ëŽì ì ì°žì¡°íêž° ìíŽ dot
íšì륌 ì¬ì©íë ë° ìë¬Žë° ë¬žì ê° ììµëë€. ì륌 ë€ìŽ "ë íšìì ëŽì "ì ëí ë€ë¥ž í©ëŠ¬ì ìž ìë¯žê° ìì ë¿ë§ ìëëŒ, í¹í ì í ì°šì 벡í°ì ëí ì ì¶ë¥Œ ê°ì¡°íë €ë êµì¡ì ì€ì ìì ë¹ê³µìì ìž ì¬ì©ìì "íšìì ëŽì "ì 볎ë ê²ìŽ ë§€ì° ìŒë°ì ì
ëë€. 공백.
@juliohm , inner(x,y) = sum(x.*y)
ë ìŒë°ì ìŒë¡ ëŽë¶ ì íë ìëë¯ë¡ Ʞ볞ì ë£ë ê²ì ꜀ ëì°í ëììŽ ë ê²ì
ëë€.
ê·žë¬ë dot
ë ìŽë¯ž 벡í°ë¡ ëìíë Baseì ë€ìí ê°ì²Žì ëí ì¬ë°ë¥ž ëŽì ì ê³ì°íì§ ìê³ ììµëë€(ì¬ì€ ì€íš) N>1
ì ëë¡ ìëíë ê³³). ê²ë€ê°, ìŒë° ìŽëŠ norm
ë íë ¬ì ëíŽ ëªšížíŽì§ëë€. ìëíë©Ž ìŽê²ìŽ ì ëë ë
žëŠì ë°ííëë¡ íë íì¬ ì íì ëìíì§ë§ ëëë¡ "ë²¡í° ë
žëŠ"(Frobenius ë
žëŠ)ë íìíêž° ë묞ì
ëë€.
ë°ëŒì, ëŽ ìí¥ìŽ ê°ì¥ ì ì ì ìì vecnorm(x) = norm(vec(x))
ìë¯žë¡ ì ë²ëŠ¬ê³ vecnorm(x)
륌 " x
ìŽ ë²¡í° ê³µê°ìì x
"( vecdot
ì ì ì¬)ì íŽë¹ ë²¡í° ë
žëŠì ê³ì°í©ëë€. ìŽê²ì íŽì(ë°ëŒì 묞ìí)ì ìŽëìŽì§ë§ Baseì ê°ì²Žì ëí ì€ì 구í/ìì
ì í¬ê² ë€ë¥Žì§ ììŒë©°(PR #25093) ëë¶ë¶ì ê²œì° ëìŒí 결곌륌 ìì±í©ëë€(ìì N
ë°°ìŽ ì€ì¹ŒëŒ ëë 벡í°). $#$10 x
#$ì íŽë¹ ë²¡í° ê³µê° ì°šìì ë°ííë íšì veclength(x)
ë ìží°íìŽì€ë¥Œ ìì±í©ëë€.
ê·žë° ë€ì ì¬ì©ì ì ì íší€ì§ë 벡í°ë¡ ìëíë ì ì íì ì ìí ë ìŽë¬í êž°ë¥ì 구ííë ë°©ë²ì ë°°ììŒ í©ëë€.
ë¹ê³µì ì¬ì©ìì "íšìì ëŽì "ì 볎ë ê²ì ë§€ì° ìŒë°ì ì ëë€. í¹í ì í ì°šì ë²¡í° ê³µê°ì ëí ë¹ì 륌 ê°ì¡°íë €ë êµì¡í ì€ì ìì
ìŽëŠìŽ ì€ìíì§ ìë€ê³ ë§íì§ ë§ììì€. ëë në²ì§ž ë°ë³µí ê²ìŽë€: ëŽì 곌 ëŽì ì ê°ì ê²ìŽ ìëë€. ì¶ì Hilbert ê³µê°ìŒë¡ ìì ì ë žì¶íë ì¬ê°í ì¬ë£ë "ì "ì ì¬ì©íì§ ììµëë€. ëŽ ë§ë³Žë€ Wikipedia륌 ì 뢰íë ê²ì ì ížíë€ë©Ž ì¬êž°ì ì ì륌 ë³µì¬íì¬ ë¶ì¬ë£ììµëë€.
ì í ëìíìì ëŽì ê³µê°ì ëŽì ìŽëŒë ì¶ê° 구조 륌 ê°ì§ ë²¡í° ê³µê°ì ëë€. ìŽ ì¶ê° 구조 ë ê³µê°ì ê° ë²¡í° ìì 벡í°ì ëŽì ìŽëŒê³ íë ì€ì¹ŒëŒ ìë곌 ì°ê²° í©ëë€.
ìíìì ëŽì ëë ì€ì¹ŒëŒ ê³±ì ë ê°ì ëìŒí êžžìŽ ì ì«ì ìíì€ (ìŒë°ì ìŒë¡ ì¢í 벡í°)륌 ì·šíŽ ëšìŒ ì«ì륌 ë°ííë ëì ì°ì° ì ëë€.
ìžìŽì ì©ìŽì ìíì ìŒêŽì±ì ê°ì íë €ë ìŽë¬í ì íì ììì 꺟ìµëë€. ëŽê° ë¹ì ìê² ì묎늬 ë§ì ì¬ì€ì ì ìíŽë, ì¬ë¡ì ì¬ì© ì¬ë¡ì ìì ìêŽììŽ, "ëë ì ìŽ ì¢ë€"ëŒë ë§ ìžìë ë°ë¡ ìŽ ìë€.
@juliohm , ì©ìŽë ì íì±ìŽ ìëëŒ êŽë¡ì 묞ì ì ëë€. ëë Hilbert ê³µê°, í¹í 묎í ì°šì ê³µê°ì ëí ê³µìì ìž ì¬ì©ìì "ëŽì "ìŽëŒë ì©ìŽê° ê±°ì ë ì ì ìŒë¡ ì¬ì©ëë€ë ë° ëìí©ëë€. ê·žë¬ë ëŽê° ë§íë¯ìŽ "ëŽì íšì"륌 Googleì ê²ìíë©Ž íŽë¹ ì©ìŽì ë¹ê³µìì ìž ì¬ì©ë²ë ë§ìŽ ì°Ÿì ì ììµëë€. "ìŽ íë² ë¥Žíž ê³µê°ì ë ììì ëŽì ì ì·šíììì€"ëŒê³ ë§íë©Ž 몚ë ìíìë 묎í ì°šì ê³µê°ì 겜ì°ìë ëŽì ì ì°žì¡°íë€ë ê²ì ìê² ë ê²ìŽë¯ë¡ íŒëì ì€ì ìíì ììµëë€. "ëŽì "ìŽëŒë ì©ìŽì íì€ ìŒë°í. ìŽê²ìŽ ëŽê° "ì " ë "ëŽë¶"ì ì² ì ë Œìì ì€ì¬ 묞ì ë¡ ë³Žì§ ìë ìŽì ì ëë€.
ì¬êž°ì ìíë ì믞 첎ê³ì ì íìŽ ìë¡ìŽ Hilbert ê³µê° ëë Banach ê³µê°ì ì ìíë ê²œì° êµ¬ííŽìŒ íë íšì ì§í©ì ê²°ì íë ê²ìŽ ì€ìí©ëë€. íì¬ ìë¡ìŽ Hilbert ê³µê°ì ëíëŽë ì íì ì ìíë €ë©Ž dot
ë° norm
adjoint
ì ìíŽìŒ í©ëë€(íì¬ íìì ëí ëì²Žê° ìêž° ë묞ì). ìŽì€ ê³µê° ê°ì²Žì ëí 맀íì ìíë 겜ì°
@Jutho ê° ë§íë¯ìŽ ë°°ìŽ ë°°ìŽì 겜ì°ìë 몚ë ê²ìŽ ë³µì¡í©ëë€. ìíë ê²ìŽ ì¬ë¬ ê° ìêž° ë묞ì
ëë€. ê°ë¥í 몚ë ìë¯žë¡ ì ëíŽ íì€íë ìŽëŠìŽ ìêž° ë묞ì 몚ë ì¬ëì ë§ì¡±ìí¬ ìŽëŠ/ìë¯žë¡ ì ì°Ÿêž°ê° ìŽë µìµëë€. vecdot
ìë¯žë¡ ì ëí ë
Œìë #25093ì ì°žì¡°íììì€. ë ìì ë ì¬êž°ì ì¢ì ëëµìŽ ììµëë€.
ì¬êž°ì ëª ê°ì§ ê°ë¥ì±
x[i]' * y[i]
ì í©ê³ . íì¬ dot(x,y)
ì
ëë€. íë ¬ 벡í°ì ëí ëŽì (íë ¬ì ì ê³µíë 겜ì°)ìŽ ìëë©° íì¬ ë€ì°šì ë°°ìŽì ëíŽ ëªšë ì ìëìŽ ìì§ ììµëë€.dot(x[i], y[i])
ì í©ê³(ë€ì°šì ë°°ìŽ í¬íš) ë° conj(x)*y
8$#$ ì ê²œì° Number
. íì¬ vecdot(x,y)
ì
ëë€.inner(x,y)
ì ê°ì ìŒë¶ íšìë íì ì§ì í ëŽë¶ ê³±ìŒë¡ ì ìëê³ ë°°ìŽì ê²œì° í©ê³ inner(x[i],y[i])
â 볞ì§ì ìŒë¡ @Jutho ê° ìíë "ì¬ê·ì vecdot"ì
ëë€. ê·žë¬ë A
íë ¬ì ê²œì° ìŽ ëŽì ì íì¬ norm
ì ììž ì ëë ê·ë² norm(A)
곌 ìŒì¹íì§ ììµëë€. ìŽ ë¬žì 륌 íŽê²°íë €ë©Ž íë ¬ìŽ Frobenius íì€ìŒë¡ Ʞ볞 ì€ì ëëë¡ norm(A)
륌 ë³ê²œíŽìŒ íë©°, ìŽë ì ì¬ì ìŒë¡ êŽë²ìí 죌ì ë³ê²œ ì¬íìŽ ë ì ììµëë€.ì§ë¬ž(#25093ìì ë¶ë¶ì ìŒë¡ ë
Œìëš)ì Baseìì ìŽ ìž ê°ì§ 몚ëê° íìíì§, ìëë©Ž ë ê°ë§ ê°ì§ê³ ë²ìŽë ì ìëì§(ê·žëŠ¬ê³ ë¬Žìì ë ê°, ê·žëŠ¬ê³ ë¬ŽììŽëŒê³ ë¶ëŠ
ëê¹)ì
ëë€. @Jutho ì ì ìì Ʞ볞ì ìŒë¡ Baseìì ìµì
2륌 ì ê±°í ë€ì ìµì
3ì ëíŽ vecdot
ë° vecnorm
륌 ì¬ì©íë ê²ì
ëë€. ê·žë¬ë©Ž ì§ì í ëŽë¶ ì íìŽ ìì§ë§ ì©ìŽë Juliaìê²ë ë€ì ê³ ì íê³ ë¬Ží ì°šì Hilbert ê³µê°ê³Œ ê°ìŽ ìœê° ìŽìí©ëë€. ë¬Œë¡ ê·žê²ìŽ ìžìì ëì ìë ê²ì
ëë€.
ë ë€ë¥ž ê°ë¥ì±(ì°ëŠ¬ê° vecdot
ë¡ íë ê²ê³Œ ìœê° ë
늜ì )ì dot
ê° ì§ì í ëŽë¶ ì íìŽ ëëë¡ ì구íë ê²ìŒë¡ (ë€ë¡) ëìê°ë ê²ì
ëë€. ìŠ, íë 1ì ì ê±°íê³ dot(x::AbstractVector, y::AbstractVector)
륌 sum dot(x[i],y[i])
ì ëìŒíê² ë§ëëë€. ì¬ì í ë€ì°šì ë°°ìŽì ëíŽ ì ìíì§ ë§ììì€( norm
ì ìŒêŽì±ì ì ì§íêž° ìíŽ).
ëì íì¬ ê°ìžì ìž ì±í¥ì dot
륌 ì§ì í ëŽì ( norm
ì ìŒì¹íŽìŒ íš)ìŒë¡ ì ìíì¬ ë²¡í°ì ëíŽ dot(x[i],y[i])
ì í©ê³ë¡ ë³ê²œíë ê²ì
ëë€(ìŠ, íë ¬ 벡í°ì 겜ì°), ë€ì°šì ë°°ìŽì ëíŽìë ê³ì ì ìíì§ ììµëë€. ê·žë° ë€ì vecdot
륌 ì ìíì¬ @Jutho ê° ì ìí ëë¡ vecdot(x,y) = dot(x,y)
ë첎 $ vecdot
$ 륌 ì¬ê·ì ìŒë¡ ížì¶í©ëë€. ë§ì§ë§ìŒë¡, ìë¡ìŽ "Hilbert-space" ì íì dot
ë° norm
륌 ì ìíŽìŒ íë€ê³ ë§í©ëë€. ìŽê²ì ëìê² ê°ì¥ ë°©íŽê° ì ê³ ìŽíŽíêž° ì¬ìŽ ë³íì²ëŒ 볎ì
ëë€.
( norm(x) = sqrt(real(dot(x,x)))
íŽë°±ë ê°ë¥íì§ë§ ì€íšëŠ¬ìŽì€ ì€ë²íë¡ì ì·šìœíêž° ë묞ì ë€ì ìíí©ëë€. êž°ì ì ìž ìŽì ë¡ sqrt(dot(x,x))
륌 íŽë°±ìŒë¡ ì¬ì©í ì ììµëë€. Real
ê²°ê³Œê° ìëëŒ Complex
결곌ì
ëë€.)
ìŽ ì ìµí ë°ìì ëíŽ @stevengj ìê² ê°ì¬ë늜ëë€. íëì ìì ì견:
ë첎
vecdot(x,y) = dot(x,y)
. ë§ì§ë§ìŒë¡, ìë¡ìŽ "Hilbert-space" ì íìdot
ë°norm
륌 ì ìíŽìŒ íë€ê³ ë§í©ëë€.
ê±°êž°ìë ë ê°ì§ 묞ì ê° ììµëë€. $# vecdot
ë ìŒë° ë°ë³µì륌 ì²ëŠ¬íêž° ìíŽ ìŽë¯ž Any
ìžì륌 íì©íë¯ë¡ $ vecdot(x,y) = dot(x,y)
fallbackì ì¡Žì¬í ì ììµëë€. ë ë²ì§ž 묞ì ë dot
ë° norm
ê° ì¬ì©ì ì í곌 ê°ì 벡í°ê° ì ìíŽìŒ íë ì§ì í ëŽì ë° ê·ë²ìŒë¡ ë
žì¶ëë©Ž Krylov ë©ìëì ê°ì íší€ì§ë¥Œ ìì±í ëìë ì í곌 ê°ì ìì í ìŒë°ì ìž ë²¡í°ì íšê» ìëíŽìŒ íì§ë§ ì¬ì©ìê° ê°ì²Žì ê°ì 벡í°ë¡ ì€ì²© ëë ë€ì°šì ë°°ìŽì ì¬ì©íë €ë 겜ì°ìë ì¬ì í ìëíì§ ììµëë€. ë°ëŒì vecdot
ë° vecnorm
ë 벡í°ì ê°ì ê°ì²Žì ìŒë°ì ìž ëŽì ë° ê·ë²ìŽëŒê³ 죌ì¥í©ëë€. ìŽê²ì ëí íë ¬ì ê²œì° ëë¶ë¶ì ì¬ëë€ìŽ ì€ì ë¡ norm
ê° ì ëë íë ¬/ì°ì°ì íì€ìŽ ë ê²ìŒë¡ êž°ëíë€ë ì¬ì€ê³Œë ì ë§ìµëë€.
ì€ì ì¬ì© ì¬ë¡ì 겜ì°(ìŽê²ìŽ ììžì ìž ê²œì°ê° ìëì 볎ì¬ì£Œêž° ìíŽ). íë¥ ì íë ¬ì íŽë¹ ê³ ì 벡í°ê° ê³ ì ììì íë¥ ë¶í¬ë¥Œ ëíëŽë ê°ì¥ í° ê³ ì ê°(Perron-Frobenius)ì ê°ì§ëë€. ê·ž ìì ìŒë°íìì íë¥ ë¶í¬ë ìì ì ë¶íž íë ¬(ë°ë íë ¬)ë¡ ìŒë°íëë©° ìŽë¬í íë ¬ì ìì í ìì 맵, ìŠ ë§µ rho -> sum(A[i] rho A[i]^\dagger for i = 1:N)
ì ê³ ì ì (ìµë ê³ ì ê°ì íŽë¹íë ê³ ì 벡í°)ì
ëë€. ì¬êž°ì rho
ë ë°ë íë ¬ìŽê³ A[i]
ë 몚ë i
ì ëí íë ¬ì
ëë€(ìì í ìì 맵ì ëíëŽë Kraus ì°ì°ìë¡ ìë €ì§). í° íë ¬ ì°šìì ê²œì° Arnoldi ë°©ë²ì ê³ ì ììì ë°ë íë ¬ì ì°Ÿë ë° ìŽìì ìŒë¡ ì í©í©ëë€.
ëì íì¬ ê°ìžì ìž ì±í¥ì ì ì ì§ì í ëŽì (ê·ë²ê³Œ ìŒì¹íŽìŒ íš)ìŒë¡ ì ìíì¬ ë²¡í°ì ëí ì (x[i],y[i])ì í©ìŒë¡ ë³ê²œíë ê²ì ëë€. ë§ì§ë§ìŒë¡, ìë¡ìŽ "Hilbert-space" ì íì ì 곌 ê·ë²ì ì ìíŽìŒ íë€ê³ ë§í©ëë€.
ê·žê²ì ìŽë¯ž ìì²ë ë°ì ì
ëë€. Baseìì inner
dot
륌 묞ìííë©Ž ìµìí ì¬ì©ìê° ë¶íìí ëŒìŽëžë¬ëŠ¬ë¥Œ ê°ì žì€ì§ ìê³ ìì ì ê³µê°ì ì ìí ì ììµëë€. ìŽëŠìŽ ë§ìì ë€ì§ë ìì§ë§ ìµìí íìí ì¬ëë€ì êž°ë¥ì ì¬ì©í ì ìì ê²ì
ëë€.
ì, "Hilbert-space" ì íì ëíŽ êµ¬ííêž° ìíŽ ë¬žìíë ìží°íìŽì€ë¥Œ ê°ë ê²ìŽ ì¢ì ê²ìŽëŒê³ ìê°í©ëë€.
ë¬Œë¡ , ë²¡í° ê³µê°ì ëí ìŽ ìŒë° ìží°íìŽì€ ì ëíŽ ìê°íë©Ž ììì ì ìí ëë¡ norm
ê° í¬íšëìŽ ììŒë©Ž íë ¬ì ëí Frobenius íì€ ìŽìŽìŒ í©ëë€(몚ë ë°°ìŽìŽ 벡í°ì ìììŽêž° ë묞ì ê³ ì°šì ë°°ìŽì ëíŽ ìŒë°ííŽìŒ í©ëë€. ê³µê°). ìŽ ê²œì° íë ¬ì ëí ë³ëì "ì°ì°ì êž°ì€" íšìê° íìí©ëë€( matnorm
ëë opnorm
ëë norm
ì ëí í€ìë ìžì ...).
@andyferris , ëŽ ë§ì§ë§ ì견ì ì ìŽì£Œìžì. norm
ë° dot
ë ê³ ì°šì ë°°ìŽ ë° ì€ì²© ë°°ìŽê³Œ ê°ì Juliaì ê°ì²Žì ê°ì 벡í°ììë ìëíì§ ìêž° ë묞ì ìŒë° Hilbert ê³µê° ìží°íìŽì€ê° ë ì ììµëë€. ë°ëŒì vecdot
ë° vecnorm
ë ìŽì ëí 'ë ëì'(ìµì íꎎì ì믞ìì) í볎ì
ëë€.
ê°ê¹ìŽ ì¥ëì ìžìŽë¡ ìíí ê²ìŒë¡ ììëë ìí ì í곌 ìë¹í êŽë šìŽ ìë€ê³ ìê°íë ìŽ ì£Œì 륌 ëìŽëŠ¬ììì€. ëŽë¶ ì íì ìŒë°ì±ê³Œ ì믞륌 ê°ì íêž° ìíŽ ë¬Žìì í ê²ìžì§ì ëí í©ìê° ììµëê¹?
ë€ìì ì íì êŽí ëŽ ê°ìž ìí ìšíšë¡ì§ì ìŒë¶ì
ëë€.
êž°ìµì ì 늬íë ë° ëììŽ ëë€ë©Ž / í©ì륌 ìŽëìŽëŽë ë° ëììŽ ë ì ìë€ë©Ž
볎ëì€: ìí€íŒëì ì°žì¡° ìì
ìŽ ìì ìì #25093ì ìë @Jutho ì ì ìì vec*
ì©ìŽê° ìŽ ë§¥ëœìì ëìê² ìœê° ìŽìíëëŒë ê°ì¥ ë°©íŽê° ëì§ ìë ë³ê²œìŒë¡ 볎ì
ëë€.
vec*
ì©ìŽê° ìŽìíë€ë ë° ëìí©ëë€. ìŽê²ìŽ íì€ ìŽëŠì ê°ëë¡ íšì ìŽëŠì ë°êŸžë ê²ìŽ 몚ë ì¬ì©ììê² ì ìµí ìŽì ì
ëë€.
ëë ë§ì°¬ê°ì§ë¡ vec*
ì©ìŽê° ìŽìíë€ë ë° ëìí©ëë€.
vecdot
ì ëí ëììŒë¡ ìë¡ìŽ ë°©ë² inner
ì ëì
í ì ìì§ë§ vecnorm
"ë첎"í ì¢ì ìŽëŠì ëªšë¥Žê² ìµëë€. ì¬ì€, ëë vecnorm
ê° ëìë€ê³ ìê°íì§ ììµëë€. ë²¡í° ê·ë²ì ì°ëŠ¬ê° ìíë ìì
ì ëíŽ ì í늜ëê³ ëª
ìì ìž ì©ìŽì
ëë€.
ì¬êž°ì Ʞ볞ì ìž ë¬žì ë íë ¬ ë° ë€ì°šì ë°°ìŽì êŽí ê²ì
ëë€. ìŒë°ì ìž norm(A)
ë ëŽì ì íŽë¹íì§ ììŒë©° ììì ë
Œìí ë°°ìŽì ë°°ìŽìë íŽë¹íì§ ììµëë€. ìŽë€ ëŽë¶ ì íìŽ ìëë ê²ìžì§ ëíëŽêž° ìíŽ ìŽë¬í 겜ì°ì ìœê°ì ëª
íì±(ì: vec*
ëë fro*
)ìŽ íìí©ëë€.
Ʞ볞ê°ìŽ vecdot
ìž inner
íšì륌 ê°ì§ ì ìì§ë§ ëìŒí íšìì ëíŽ ë ê°ì ìŽëŠì ê°ë ê²ì ìœê° ìŽëŠ¬ìê³ íì€ì 묎ììŽëŒê³ ë¶ë¥Œì§ ì¬ì í 묞ì ê° ììµëë€.
ëë ëí vecdot
ìŽëŠìŽ ìŽìíë€ë ê²ì ìììµëë€. ì¬ì€, ëë ê·žê²ìŽ ì¡Žì¬íëì§ì¡°ì°š 몰ëê³ inner
ëŒë ì첎 êž°ë¥ì ë§ë€ììµëë€.
ëŽ ìŽíŽë ì°ëŠ¬ê° inner
vecdot
ì ë ìŽì ì¬ì©íì§ ìê³ ì¬ì©ìê° ìì ì ê³µê°ì 구íí ì ìëë¡ ëŽë¶ ì í ì믞륌 ë¶ì¬í ì ìë€ë ê²ì
ëë€.
norm
ì ëíŽìë ì ëªšë¥Žê² ìµëë€. ëŽë¶ ì íì ëíŽ ë
Œìíêž° ìíŽ ìŽ ë¬žì 륌 ìŽììµëë€. Baseì ê·ë² ìí륌 ë
Œìíë ë° ë ë€ë¥ž 묞ì ê° ì ì í ì ììµëë€.
vecdot
ë° vecnorm
ëì inner(x,y)
ë° innernorm(x) = sqrt(inner(x,x))
(ì€ë²íë¡ë¥Œ ë°©ì§íêž° ìíŽ ìµì íë í¹ì ì¬ë¡ í¬íš)ê° ìì ì ìë€ê³ ê°ì í©ëë€. innernorm
ë ìœê° í¹ìŽíì§ë§ 묞맥ì ìë¹í ëª
íí©ëë€.
ìŽ ë³ê²œ ì¬íì ëíŽ ìì§ìê°ëœì ì¹ìŒëëë€. inner
ë° innernorm
ìŽëŠì ëª
ííê³ ê°ë
곌 ìŒì¹í©ëë€. Julia v1.0ìŒë¡ ë§ë€ ì ìꞰ륌 ë°ëëë€.
inner
ë° innernorm
ë êŽì°®ì ê² ê°ìµëë€.
ëŽ ìê°ì ì°ëŠ¬ì norm
íšìë Juliaì ìŒë° íšì ë° ëì€íšì¹ ìì€í
곌 ëì€íšì¹ê° ììŽìŒ íë "ëª
íí ìží°íìŽì€"ëŒê³ ë¶ë¥Žë ê²ê³Œ ì ë§ ì ë§ì§ ììµëë€. ìë¯žë¡ ì ì í, ëšì§ 구í ì í. ì ë ê°ìžì ìŒë¡ " norm
ë ë²¡í° ê³µê° ììì ë
žëŠì ë°íí©ëë€"ëŒê³ ë§í ì ììµëë€. ì¬êž°ì íë ¬ê³Œ ì í ì°ì°ìë ì¬ì í ë²¡í° ê³µê°ì ììì
ëë€(ìŽë¥Œ ëíê³ ì€ì¹ŒëŒë¡ ê³±í ì ìì) . ì륌 ë€ìŽ " opnorm
ë ì í ì°ì°ìì ì°ì°ì ë
žëŠì ë°íí©ëë€"(ëë matnorm
ëë 묎ììŽë ê°ì)륌 ê°ì§ ìë ììµëë€.
íì¬ ì°ëŠ¬ë " norm
ë ë²¡í° ê³µê°ì ììì ë
žëŠì ë°íí©ëë€. ëš, ìì ê° ì í ì°ì°ììž ê²œì°ìë ëì ì°ì°ì ë
žëŠì ì€ ê²ì
ëë€." ëë ê°ìžì ìŒë¡ íê²¬ìŽ ëëì§ ìììŒ íë€ê³ ìê°í©ëë€.
ìŠ, ëë íì ë²¡í° ë žëŠì ìííë íëì íšìì íì ì°ì°ì ë žëŠì ìííë ë€ë¥ž íšì륌 ì ížíê³ ë ë€ ìííë €ê³ íë íšìë ì ížíì§ ììµëë€ .
@andyferris :+1: ê³µê°ì ëŽì ì ìíŽ ì ëë ê·ë²ìŽ ìë í¹ì ê·ë²ì ë 구첎ì ìž ìŽëŠì ê°ì§ ì ììµëë€. norm
ìŽëŠì ì íí norm(x) = sqrt(inner(x,x))
륌 ì믞íë©° ì¬ì©ì ì íì ë°ëŒ íìì ë°ëŒ ì¬ì ìí ì ììµëë€.
ì ë ê°ìžì ìŒë¡ "
norm
ë ë²¡í° ê³µê° ììì íì€ì ë°íí©ëë€"ëŒê³ ë§í ì ììµëë€.
íì¬ norm
íšìë íŽë¹ ì ì륌 충족í©ëë€. íë ¬ ì ê²œì° ë²¡í° ê³µê°ì ëíŽ ì벜íê² ì íší ë
žëŠ ìž ì ë(ì°ì°ì) ë
žëŠì ê³ì°í©ëë€. (ë²¡í° ê³µê°ìë ëŽì ìŽë ê·ë²ìŽ ì í íì íì§ ììµëë€.)
ì°ì°ì ë žëŠìŽ "ë²¡í° ê³µê°ì ë žëŠ"ìŽ ìëëŒê³ ìê°íë€ë©Ž "ê·ë²"ì ì ìì ëíŽ ë€ì íŒëì€ë¬ìž ì ììµëë€.
ìŽê²ì norm
ì innernorm
ì¬ìŽì ì ì©í 구ë³ìŽêž°ë í©ëë€. norm
륌 ì ìíë©Ž Banach ê³µê°(ëë ìµìí íì€ ë²¡í° ê³µê°)ìŽ ìë€ë ê²ë§ ì믞íë€ê³ ë§í ì ììµëë€. innernorm
륌 ì ìíë©Ž Hilbert ê³µê°(ëë ìµìí ëŽë¶ ê³± ê³µê°)ìŽ ìê³ ìŽ ê·ë²ìŽ inner
ì ìŒì¹íšì ì믞í©ëë€.
ì륌 ë€ìŽ, ì ìì ìì¹ ì ë¶(ala quadgk)ì ëŽì ê³µê°ìŽ ìë íì€ ë²¡í° ê³µê°ë§ íìí ê²ì ëë€.
ë¬Œë¡ ì£ì¡í©ëë€. ì ìžìŽê° ë묎 ì ííì§ ììì ìë ììµëë€. ë€ìí ì°ì°ì ê·ë²ì í¬íšíì¬ ë²¡í° ê³µê°ì ëíŽ ì íší ë§ì ê·ë²ìŽ ë¶ëª í ììµëë€.
ëŽ ìê°ì ëŽê° ì»ê³ ìë ê²ì ìë§ë ëŽê° ììì ìž ê²ë³Žë€ ë ëª
ìì ìž ê·ë²ì ì í íë ê²ì ì ížíë€ë ê²ì
ëë€. ê·žëŠ¬ê³ ëìŒí êž°ë¥ì ì¬ì©íë©Ž(ì: ì¶ê° í€ìë ìžì ììŽ) "ëìŒí" íì€ì ì»ê² ëë©°, ìŽ ê²œì° ì íŽëŠ¬ëê° AbstractArray
ì ëíŽ ë€ì ë°©ìŽ ê°ë¥í ì íì²ëŒ 볎ì
ëë€.
ìŽê²ì
norm
ìinnernorm
ì¬ìŽì ì ì©í 구ë³ìŽêž°ë í©ëë€. ë žëŠì ì ìíë©Ž ë°ëí ê³µê°(ëë ì ìŽë ë žëŠ ë²¡í° ê³µê°)ìŽ ìë€ë ê²ë§ ì믞íë€ê³ ë§í ì ììµëë€.innernorm
륌 ì ìíë©Ž Hilbert ê³µê°(ëë ìµìí ëŽë¶ ê³± ê³µê°)ìŽ ìê³ ìŽ ê·ë²ìŽinner
ì ìŒì¹íšì ì믞í©ëë€.
ìŽê²ì í©ëŠ¬ì ìŒë¡ 볎ìŽì§ë§ ê°ì²Žì innernorm
ê° ìë ê²œì° ë€ë¥ž norm
ê° íìí ìŽì ê° ê¶êží©ëë€. ëë Banach ê³µê°ì ëí ìží°íìŽì€ ìë norm
ê° íìíê³ ëŽë¶ ì í ê³µê°ì ëí ìží°íìŽì€ë norm
ë° inner
몚ë륌 ì ê³µíë€ê³ ì ìí©ëë€. ê·žë° ë€ì ìŽë¬í íšìë Banach ëë ëŽë¶ ì í ê³µê°ì ê°ì²Žë¥Œ ì ì íê² êž°ëíë ìŒë° ìœëìì ì¬ì©í ì ììµëë€(ížì§: Banach ê³µê°ìì ìëíë ìœëê° ìëìŒë¡ ëŽë¶ ì í ê³µê°ììë ìëí ê²ìŽëŒë ìê°ìŒë¡).
ëë norm(x)
ê° íì ìŽë€ ì¢
ë¥ì ììë³ ì íŽëŠ¬ë ê·ë²(ìŠ, íë ¬ì ëí Frobenius ê·ë²)ì ì°žì¡°íë€ê³ ì ìíê³ ìë€ê³ ìê°í©ëë€. ìŠ, Ʞ볞ì ìŒë¡ vecnorm
ê° ìŽì 몚ëë¡ ì¬ê· ì¬ë¡ì
ëë€. ìŽ ê²œì° dot(x,y)
륌 íŽë¹ ëŽë¶ ì íìŒë¡ ì¬ì ìí ìë ììµëë€( inner
ë ìëíì§ë§ dot
ìë ì€ì ë³í x â
y
ì ìŽì ìŽ ììµëë€. ).
ìì¹ì ìŒë¡ë êŽì°®ì§ë§ ìŽë íêž°ì ìž ë³ê²œ ì¬íìŽ ë ê²ìŽë©° 0.7 ìŽì ìë ìœê° ëŠì ì ììµëë€.
L2ë ê³ ì°šìììë ì¢ì Ʞ볞ê°ì
ëê¹?
ìŽ êž°ì¬ììë 거늬ì ëíŽ ìŽìŒêž°íì§ë§ ê·ë²ê³Œë êŽë šìŽ ìì ì ììµëë€.
https://stats.stackexchange.com/questions/99171/why-is-euclidean-distance-not-a-good-metric-in-high-dimensions
ìŽ ê²œì° ì°ëŠ¬ë dot(x,y)륌 ììíë ëŽì (inner product)ìŒë¡ ì¬ì ìí ìë ììµëë€.
dot
ìì í ììš ì ììµëê¹? ì€ì íêž°ë²ì dot
ëŒë íšìì ì¡Žì¬ì êŽë šìŽ ììŽìŒ í©ëë€. Julia ë°°ìŽì ëíŽ inner
ë©ìëë¡ ì€ì륌 ì ìíêž°ë§ íë©Ž ë©ëë€. ê·žê² ê°ë¥í©ëê¹?
ìŽê²ìŽ ë°ë¡ ëŽì ì ëë€. ì íŽëŠ¬ë êž°ííì ì¬ì©íì¬ R^nìì xì y ë²¡í° ì¬ìŽì ëŽì ì ëí ížëŠ¬í íêž°ë² x â yì ëë€.
@stevengj ì¢ì ììœìŽëŒê³ ìê°í©ëë€. ë€.
@ o314 L2ë ê³ ì°šììì ì¢ì Ʞ볞ê°ì
ëê¹? ìë§ë ê·žë ì§ ìì ìë ìì§ë§ ì륌 ë€ìŽ norm(v::AbstractVector)
ì ìíŽ ì íë íì€ìŽ $# length(v)
#$ì ìì¡Žíë€ë©Ž ëë ê·žê²ì ì ë§ë¡ ì«ìŽí ê²ì
ëë€ :) ëë ëê°ìŽ ëŽ íë ¬ìŽë ê³ ì°šì ë°°ìŽì ì¶ìž¡íë ê²ì ì¢ìíì§ ìì ê²ì
ëë€. is "too big for L2" - ìë§ë ìŽê²ì ì¬ì©ìê° ëª
ìì ìŒë¡ íìíŽìŒ íë€ê³ ì ìíê³ ì¶ìµëë€.
@juliohm ë¶ëª
í ê°ë¥íì§ë§, ìžêží ê²ì²ëŒ ìŽë ì°ëŠ¬ê° ì ìíë 죌ì ë³ê²œ ì¬íì
ëë€. (ë€ì, ì¬ê· ì¬ë¡ìì 묎ìì í ê²ìžì§ì inner
ì dot
ì¬ìŽì ê°ë¥í ì°šìŽì ì ëí ìŽì ë
Œì륌 몚ëíí©ëë€.)
@stevengj , @andyferris ê° ì믞íë ë°ì ëí ëŽ íŽìì ì€ëŠ¬ íìŽí ë묞ì ì¬ì©ìê° ê°ì²Žë¥Œ 벡í°ë¡ íŽìíê³ íŽë¹ ë²¡í° p
-normì ì¬ì©íꞰ륌 ìíëì§ ì¬ë¶ë¥Œ ê²°ì íêž° ìŽë µë€ë ê²ì
ëë€. ëë ì°ì°ìë¡ (ê·žëŠ¬ê³ ì ëë p
-normì ê³ì°). ë°ëŒì ìíë ëìì ëª
ìì ìŒë¡ ì§ì íë ê² ìžìë ì íì ì¬ì§ê° ìë€ê³ ìê°í©ëë€. íì¬ ì ê·Œ ë°©ìì norm
ê° ì
ë ¥ì êž°ë°ìŒë¡ ë²¡í° ë
žëŠ ëë ì ë ë
žëŠì ì íí ì§ ì¬ë¶ë¥Œ ììì ìŒë¡ ì¶ìž¡íë €ê³ ìëíê³ vecnorm
ê° ìíë ê²ì ëª
ìì ìŒë¡ ì§ì íë ë°©ë²ìŽëŒë ì ìì ìœê° ìŽìí©ëë€. ë²¡í° ê·ë²(ìŽê²ìŽ ëŽê° vecnorm
ê°ì ëì ìŽëŠì ì°Ÿì§ ëª»íë ìŽì ìŽêž°ë í©ëë€). ë³Žë€ ê·Œë³žì ìž ë³ê²œì norm
륌 íì ë²¡í° ë
žëŠìŒë¡ Ʞ볞 ì€ì íê³ (í€ìë) ìžì ëë ë€ë¥ž êž°ë¥ì íšê» ì¬ì©íì¬ ì ëë ë
žëŠì ìí ë ëª
ìì ìŒë¡ ì§ì íë ê²ì
ëë€.
ë€ë¥ž íížìŒë¡, ëë ìŽê²ìŽ ëŽì êž°ë° ê·ë²ìŽëŒë ì ìì ëª
ìì ìž innernorm
ìŽëŠë ì 겜 ì°ì§ ììµëë€(ìŠ, ì íŽëŠ¬ëì ê²œì° íì p=2
). ìŒë¶ ì¬ì© ì¬ë¡ììë p=2
ë§ ìœêž° ë묞ì ì¬ì©ì ì ì ê°ì²Ž (vec)norm
ê° ìží°íìŽì€ì ìŒë¶ë¡ ì íì ìžì p
륌 ì§ìíŽìŒ íëì§ ì¬ë¶ë¥Œ íëšíêž°ê° ìŽë µìµëë€. ê³ì°íêž°.
ìŽê²ìŽ ë°ë¡ ëŽì ì ëë€. ì íŽëŠ¬ë êž°ííì ì¬ì©íì¬ R^nìì xì y ë²¡í° ì¬ìŽì ëŽì ì ëí ížëŠ¬í íêž°ë² x â yì ëë€.
ìŒë°(ì: ë³µì¡í) ë²¡í° ê³µê°ì 맥ëœìì x â
y
íêž°ë²ì 볞 êž°ìµìŽ ìë€ë ì ìì ìŽì ëìí©ëë€. ìŽë° 겜ì°ìë ìíì íêž°ë² (x,y)
ëë Dirac íêž°ë² < x | y >
ë§ ì¬ì©íë€ê³ ìê°í©ëë€. ì ìêž°íììë ì¢
ì¢
3ì°šì ì íŽëŠ¬ë ê³µê°ì 벡í°ì E â
B
륌 ì¬ì©íë©°, ë³µì¡í íêž°ë²(ìŠ, íìŽì )ì ì¬ì©íëëŒë ìŽê²ìŽ ë³µì¡í 쌀ë 륌 ì믞íì§ë ììµëë€. íìí ê²œì° ìŽë¬í ê²œì° ë³µí© íì©ìŽ ëª
ìì ìŒë¡ íìë©ëë€. ë°ëŒì dot
ê° ë³µìì ëë ìë¥Žë¯žíž ìŒ€ë ììŽ sum(x_i * y_i)
ê° ëê³ inner
ê° ìŒë° ëŽë¶ ì í ê³µê°ì ëí ì¬ë°ë¥ž ëŽë¶ ì íìŽ ëëëŒë ìêŽíì§ ìì ê²ì
ëë€. ë¶ííë ìŽê²ì ëšìŒ ëŠŽëŠ¬ì€ ì£Œêž°ìì ìíë ì ììµëë€.
L2ë ê³ ì°šììì ì¢ì Ʞ볞ê°ì ëê¹? ìë§ë ìë ìë ìì§ë§, ì륌 ë€ìŽ norm(v::AbstractVector) ì ìíŽ ì íë íì€ìŽ length(v) ì ìì¡Žíë€ë©Ž ì ë ì ë§ë¡ ê·žê²ì ì«ìŽí ê²ì ëë€. :) ì íë ¬ ëë ê³ ì°šì ë°°ìŽìŽ "L2ì ë¹íŽ ë묎 íŒ" - ì¬ì©ìê° ëª ìì ìŒë¡ íìíŽìŒ í©ëê¹?
ì ë 2d ë° 3d륌 ì²ëŠ¬íë BIM ìžê³ìì ìŒíì§ë§ 4d, 5d, 6dë 7dìŒ ì ììµëë€. ì°ëŠ¬ë ë ìŽì ê°ì§ ììµëë€. ìŽë ìì ìì ì°ëŠ¬ë ìŽë€ ì°šììì ìŒíê³ ìŽë€ ìê³ ëŠ¬ìŠìŽ êŽë šëìŽ ìëì§ ìëë€. ê·žê²ìŒë¡ 충ë¶í©ëë€.
ML, ì 볎 ê²ì ë±ìì ìŒíë ì¬ëë€ì êŽì ì ííí ì ììµëë€. ê±°êž°ìë norminfê° ë ì¢ì ì ììµëë€. ëŽ êŽì ìì ì€ìí ê²ì ì¶ìž¡ ê°ë¥ì±ê³Œ ìì ì±ì ëë€. MLì ì¬ëë€ìŽ ìì ì 묌걎ì ëíŽ ë€ë¥ž Ʞ볞ê°ì íìë¡ íë ê²œì° ì í 충격ì ë°ì§ ìì ê²ì ëë€. íŒëìŽ ìë€ë©Ž. ì. 컎íìŒ íìì ëª ìì ìŽê³ ì ì ìŒë¡ ê²°ì ë©ëë€. Algos ì ì© ì€ì ìì ì ìŽê³ ìŒêŽì±ìŽ ì ì§ëë€ë©Ž ì¬ì¹ì ëë€.
array:similar ìì ìê°ì ì»ì ìµëë€. ìì í 구íëì§ ìê³ í ì€íží©ëë€.
norm2 = x -> x |> inner |> sqrt
norminf = ...
NMAX = 10
for N in 1:NMAX
<strong i="13">@eval</strong> begin norm(a::Array{T,N}) where {T} = norm2 end
end
norm(a::Array{T,n}) where {T} = norminf
ì ì ìì í ììš ì ììµëê¹? ì€ì íêž°ë²ì ì ìŽëŒë íšìì ì¡Žì¬ì êŽë šìŽ ììŽìŒ í©ëë€. Julia ë°°ìŽì ëí ëŽë¶ ë©ìëë¡ ì€ì륌 ì ìíêž°ë§ íë©Ž ë©ëë€. ê·žê² ê°ë¥í©ëê¹?
norm(x::AbstractVector, p::Real=2) = vecnorm(x, p) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L498
vecdot(x::Number, y::Number) = conj(x) * y # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L657
dot(x::Number, y::Number) = vecdot(x, y) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L659
function dot(x::AbstractVector, y::AbstractVector) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L677
# Call optimized BLAS methods for vectors of numbers
dot(x::AbstractVector{<:Number}, y::AbstractVector{<:Number}) = vecdot(x, y) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L698
Dot / vecdotë 쌀ë 륌 ì¬ì©íê³ BLASë¡ ê° ìꞰ륌 ê²°ì íë ê²ì ì믞í©ëë€. ìŽê²ì ìŽëê°ìì ì²ëŠ¬íŽìŒí©ëë€. ê·žë¬ë ìŽê²ì ëšìŒ ë€ìì€íìŽì€ìì êŽëŠ¬í ì ììŽìŒ í©ëë€.
L2ë ê³ ì°šììì ì¢ì Ʞ볞ê°ì ëê¹? ìë§ë ìë ê²ìŽë€
L2ë ëí 묎í ì°šì ê³µê°(ì: íšì)ì ëí ê°ì¥ ìŒë°ì ìž íì€ì ëë€. 몚ë ë²¡í° ê³µê°ì ëíŽ êž°ëíë ê²ìŽ í©ëŠ¬ì ìž êž°ë³žê°ìŽëŒê³ ìê°í©ëë€.
ë¶ëª
í ë€ë¥ž ê·ë²ë ì¬ì©í ì ìꞰ륌 ìí©ëë€. norm(x)
륌 ê°ë¥í í ììë³ L2ë¡ ì¬ì ìíë©Ž norm(x, p)
opnorm
ììë³ LâìŽ ëë©° íŽë¹ ì ë/ ìŽìì ê·ë².
ìŒë°(ì: ë³µì¡í) ë²¡í° ê³µê°ì 맥ëœìì
x â y
íêž°ë²ì 볞 ì ìŽ ìë€ë ì ìì ìŽì ëìí©ëë€.
ë€ë¥ž ì€ë ë IIRCìì ì¬ë¬ ìžì©ì íìµëë€(ì: BLASë ë³µì¡í ëŽì ì ëíŽ dot
륌 ì¬ì©íê³ íšìì ëŽì ìŽëŒë ì©ìŽë¥Œ ì¬ì©íŽë êµì¡íì ìì€ë¥Œ ì°Ÿì ì ììµëë€). "ëŽì "ìŽëŒë ì©ìŽë ìŒë°ì ìŒë¡ "ëŽì ì ìŒë°í"ë¡ ìê°ë©ëë€. ì íŽëŠ¬ë ëŽì ì ëí dot
íêž°ë²ì ëëŒì§ ìì ì¬ëìŽ ìì ê²ì
ëë€. ì€ì ì°ì°ìê° ììŒë©Ž ížëŠ¬í©ëë€.
ë¬Œë¡ dot
륌 ê·žëë¡ ì ì§íê³ $# inner
륌 ëì
í ìë ìì§ë§ ê·žë ê² íë©Ž íŒëì€ë¬ìŽ ìŽë¶ë²ìŽ ìêžž ì ìë€ê³ ìê°í©ëë€. ê°ì¥ ìŒë°ì ìž ê²œì°ìë êž°ë¥ìŽ ëìŒíì§ë§ ìŽìí 겜ì°ìë (ì: íë ¬ ë°°ìŽ) ê·žë€ì ë€ë¥Œ ê²ì
ëë€.
ê·žë¬ë ë€ì ë³ê²œ ì¬íì 깚Ʞìë ì¡°êž ëŠì ì ììŒë¯ë¡ innernorm
ë° inner
ì ìì¡ŽíŽìŒ í ìë ììµëë€. ìŽìšë ëêµ°ê°ë ìµëí 빚늬 PRì ìì±íŽìŒ í©ëë€.
í©ìì ëí í©ë¹í ì²ëê° íì±ëë©Ž ì ì¬ì ìž ì£Œì ë³ê²œ ì¬íìŽ í¬íšë êŽë š(짧ì) êž°ê°ì 구íì íìíë ë° ìœê°ì ëìíì í ì í ì ììµëë€. ìŽë¬í ìì ì ì믞륌 ëª íí íê³ ëª íí ìŽëŠì ì§ì íë €ë ë žë ¥ì ê°ì¬ë늜ëë€. ìµìì!
ë ê°ì§ 죌ì ìµì ìŽ íìë©ëë€.
ì€ëšëì§ ìê³ inner(x,y)
ë° innernorm(x)
êž°ë¥ì ì¶ê°í©ëë€. vecdot
ë° vecnorm
ë첎 ë° ë°°ìŽ ë°°ìŽì ê²œì° ì¬ê·ì ì
ëë€.
ì€ëš: norm(x,p=2)
vecnorm
륌 ë첎íì¬ íì ììë³ ë° ì¬ê·ì ìŒë¡ norm(x,p=2) 륌 ë³ê²œíê³ ì°ì°ì/ì ë íì€ì ëí ì íšì opnorm
ëì
. dot(x,y)
륌 vecdot
ë¡ ë첎íì¬ íŽë¹íë ììë³ ëŽì ì ë§ëëë€. (ëì: ìŽëŠì inner
ë¡ ë³ê²œíì§ë§ ì€ì ì°ì°ìê° ìë ê²ìŽ ì¢ìŒë©° dot
ì inner
ê° ëªšë ìë ê²ì ì±ê°ì ìŒì
ëë€.)
ì²ìë¶í° ëììžíë€ë©Ž 2륌 ì ížíì§ë§ norm
ì ì믞륌 ì¡°ì©í ë³ê²œíêž°ìë ë묎 ë°©íŽê° ë ì ììµëë€.
í ê°ì§ ì€ê° ìµì
ì inner
ë° innernorm
( vecdot
ë° vecnorm
ì¬ì© ì€ëš)륌 ì ìíê³ norm(matrix)
륌 opnorm
ë¡ ì¬ì©íì§ ìë ê²ì
ëë€. norm(matrix) = innernorm(matrix)
륌 ë€ì ëì
í©ëë€. ê·žë ê² íë©Ž ì¬ëë€ì ê²°êµ inner
ë° norm
륌 ì¬ì©í ì ìê³ dot
륌 ë°°ìŽ ë²¡í°ì ëí íì¬ ìŽìí ì§ì¹ìŒë¡ ëšêžž ì ììµëë€( inner
ë ì«ì 벡í°ì 겜ì°).
innernorm
ì ëí í ê°ì§ ìŽìí ì ì L1 ëë Linf "ììë³" ê·ë²ì ì§ì íë ë°©ë²ì ìíì§ë§ ìŽë€ ì€ ìŽë ê²ë ëŽë¶ ì íì íŽë¹íì§ ììŒë¯ë¡ innernorm(x,p)
ë ìœê° ì못ë ìŽëŠì
ëë€.
ëë ë¹ì ì ì€ê° ìµì ì ì¢ìí©ëë€.
ììì ìžêžíë¯ìŽ p=2
륌 ì믞íê³ ë ë²ì§ž ìžìê° ììŽìŒ íêž° ë묞ì innernorm(x)
ëŒë ìŽëŠì ì¢ìí©ëë€. ëŽì ê·ë²ì ê³ì°íë ë°©ë²ë§ ìê³ ìë ëììŽ ììµëë€. ê·žë¬ë íì¬ (vec)norm
ììë p
ìžìê° ê°ì ë Base ìží°íìŽì€ì ìŒë¶ìžì§ ì¬ë¶ê° ëª
ííì§ ììŒë¯ë¡ ë ë²ì§ž ìžì륌 ìëµí ì§ ìëë©Ž ì§ìíŽìŒ í ì§ ëªšë¥Žê² ìµëë€. íì§ë§ ëª
ìì ìŒë¡ p != 2
륌 íìžíê³ ì€ë¥ë¥Œ ìì±í©ëë€.
ê·žë¬ë ì ìì ì€ê° ëšê³ìì vecnorm(matrix, p!=2)
륌 ì¬ì©íì§ ìë ë° ì¬ì©ëì§ ìë 묞ì ê° ììµëë€.
ëë ëí ì€ê° ìµì ì ì¢ìí©ëë€. ì°ëŠ¬ë ìŠê°ì ìž ì£Œì ë³ê²œì íꞰ볎ë€ë ê·ë²ì ëí ì ì í ì¬ì© ì€ëš 죌Ʞ륌 íì€í ê±°ì¹êž°ë¥Œ ìí©ëë€. (ì¬ì©ìë¡ì 죌ì ë³ê²œ ì¬íìŽ ëë µì§ë§ v1.0ì© ìœëìì ì¬ì© ì€ëšì ìì íë ê²ì 믞ë륌 ìí 깚ëíê³ ëª íí ìœëì ëí í¬ìì ê°ìµëë€.)
ì€ì ë¡ innernorm
ê° íìí©ëê¹ ìëë©Ž ì§êžì $# vecnorm
vecnorm
norm
ì¬ì©í ì ììµëê¹?
ëë ì€ì ë¡ dot
륌 inner
ë¡ ë첎íë ë° ì ì¬ì ìëìŽ ìë€ê³ ìê°í©ëë€. ëŽì ë ëŽì ì ìŒë°í륌 ì믞íë€ë ê²ìŽ 충ë¶í ë¶ëª
íë€ê³ ìê°í©ëë€.
ë³ê²œ ì¬íì ë ê°ì ê°ë³ PRìì 구íí ì ììµëë€.
dot
륌 inner
ë¡ ë°êŸžê³ ìŒë°íë ì믞륌 ë¶ì¬í©ëë€. ì íì ìŒë¡ ì€ì \cdot
íêž°ë²ìŽ Julia ë°°ìŽ ì¬ìŽì ëŽë¶ë¥Œ ê°ëŠ¬í€ëë¡ í©ëë€.ëŽ ìŽíŽë PR 1ìŽ Julia v1.0 ìŽì ì ë³í©ë ì ìë€ë ê²ì ëë€. 깚ì§ì§ ììµëë€.
dot
륌 inner
ë¡ ë°êŸžë ê²ì ì¬ì í ââê¹šì§ ê²ì
ëë€. ìëíë©Ž dot
ë íì¬ ë°°ìŽ ë°°ìŽì ëí ì§ì í ëŽë¶ ê³±ìŽ ìëêž° ë묞ì
ëë€. ë°ëŒì ìŽëŠì ë°êŸžë ê²ìŽ ìëëŒ ì믞륌 ë°êŸžë ê²ì
ëë€. ëë ê·ž ì믞륌 ì§ì í ëŽì (inner product)ìŒë¡ ë°êŸžêž° ìí ê²ìŽì§ë§, ì믞륌 ë°êŸžë©Ž(ì§ì í ëŽì ìŽëŒê³ ì ì) ê·žê²ì dot
ë¡ ê³ì ì² ìíë ë° ë¬žì ê° ìë€ê³ ë³Žì§ ììµëë€.
ë°ëŒì 0.7ìì ë€ìì ìíí ì ììµëë€.
norm(matrix)
ë opnorm(matrix)
ë¡, norm(vector of vectors)
ë vecnorm
ë¡ ì§ì ì€ëšë©ëë€.sum
dot([vector of arrays], [vector of arrays])
륌 ë ìŽì ì¬ì©íì§ ììµëë€.vecdot(x,y)
ë° vecnorm(x, p=2)
ê° ì íŽëŠ¬ë ëŽë¶ ê³±/ê·ë²( p=2
)ìŽê³ ì¬ê·ì ìŒë¡ ë§ëëë€(ìœê° ê¹šì§ ì ìì§ë§ ì€ì ë¡ë í° ë¬žì ê° ìë ì ìì). .ê·žë° ë€ì 1.0ìì:
vecnorm
륌 norm
ë¡, vecdot
륌 dot
ë¡ ì§ì ì€ëší©ëë€. (1.0 ëŠŽëŠ¬ì€ ê·ì¹ @StefanKarpinskiìì ìŽê²ìŽ íì©ëëì§ íì€íì§ ììµëê¹?)(ëëê²ë numpy.inner íšìë íì ëŽë¶ ê³±ìŽ ìëëë€ . ê·žë¬ë inner
ë° dot
ì ëí NumPyì ì©ìŽë íëì ìŽìíìµëë€.)
ê³ìíŽì dot
ë¡ ì°ë ê²ì ì ížíë ìŽì :
dot
ë ì íŽëŠ¬ë ëŽì ì ëíŽ ë ì¹ìí ìŽëŠì
ëë€. (ìíìë€ì ììì íë² ë¥Žíž ê³µê°ìì ëŽì íšìì dot
ëŒë ìŽëŠì ì¬ì©íë ê²ì ìœê² ì ìí ê²ì
ëë€. "ëŽì "ì ê·žë¬í ê³µê°ì ëí ë€ë¥ž ê°ë¥í ìë¯žê° ììµëë€.)inner
ì dot
ê° ëªšë ììŒë©Ž íŒëë ì ììµëë€. ìŽë€ 겜ì°ìë ìŒì¹íì§ë§ ë€ë¥ž 겜ì°ìë ìŒì¹íì§ ìì ì ìêž° ë묞ì
ëë€(íì¬ dot
ì믞륌 ì ì§íë€ë©Ž).inner
ë 컎íší° 곌íìì ë§ì ë€ë¥ž ì ì¬ì ì믞륌 ê°ì§ê³ ììŒë¯ë¡ Baseìì ìŽ ìŽëŠì ëŽë³ŽëŽë ê²ì ë€ì ì±ê°ì ìŒì
ëë€.innerëŒë ìŽëŠì ëí ë°ë ì견ì ììží ë§ìíŽ ì£Œìê² ìµëê¹? ëë ìì§ë ìŽíŽíì§ ëª»íë€
ìŽ ì€ë ëì 몚ë ì¬ëë€ìŽ ì©ìŽì ë°ëíë ê²ì ì ížíë ìŽì ë
ëìí©ëë€?
2018ë
5ì 15ìŒ íììŒ ì€ì 5:13 Steven G. Johnson [email protected]
ìŒë€:
(numpy.inner
https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.inner.html
ëëê²ë íšìê° íì ëŽì ì íì ìëëë€ .)â
ë¹ì ìŽ ìžêžëìêž° ë묞ì ìŽê²ì ë°ë ê²ì ëë€.
ìŽ ìŽë©ìŒì ì§ì ëµì¥íê³ GitHubìì íìžíìžì.
https://github.com/JuliaLang/julia/issues/25565#issuecomment-389144575 ,
ëë ì€ë ë ììê±°
https://github.com/notifications/unsubscribe-auth/ADMLbdcpeWo7M4prYz76NoqUPIkfVPP3ks5tysZlgaJpZM4ReGXu
.
ìŽë€ ìŽì ë ëìê² ì€ëë ¥ìŽ ììµëë€.
>
- ì€ì ë³íìŽ ìë ê²ìŽ ì¢ìµëë€.
ì, ì€ì íêž°ë²ì ë€ììŒë¡ ìŽëŠì ë°êŸžëëŒë ì¬ì í ì¡Žì¬í ì ììµëë€.
ììì ì€ëª í ëŽë¶.
>
- ìŒë° ì í ì°šììì ìì íë ë¹ìíìì©
ë²¡í° ê³µê°, ì ì ì íŽëŠ¬ë ëŽë¶ì ëí ë ì¹ìí ìŽëŠì ëë€.
ì í. (ìíìë€ì ì ìŽëŒë ìŽëŠì ì¬ì©íë ê²ì ìœê² ì ìí ê²ì ëë€.
ììì íë² ë¥Žíž ê³µê°ì ëí ëŽì íšì - "ëŽì "ìë
ê·žë¬í ê³µê°ì ëí ë€ë¥ž ê°ë¥í ì믞.)ìŽ ì£Œì¥ì ì¢ì§ ììµëë€. íë²í ì¬ëë€ìê² ì못ë ê²ì ê°ë¥Žì¹ì
ê·žë€ì ê²ìŒë¥Žê³ ìë¡ìŽ ì ì í ëšìŽë¥Œ ë°°ìž ì ìêž° ë묞ì ì©ìŽ,
ìíìë€ìŽ ìì ì ìì§ì ë°íì¬ ì못ë ì©ìŽë¥Œ ì¬ì©íëë¡ ê°ìí©ëë€.
>
- ëŽë¶ì ì ìŽ ëªšë ììŒë©Ž íŒëì€ë¬ìž ì ììµëë€.
ìŽë€ 겜ì°ìë ìŒì¹íì§ë§ ë€ë¥ž 겜ì°ìë ìŒì¹íì§ ìì ì ììµëë€(íì¬ ì ì ì ì§íë 겜ì°
ì믞).ì°ëŠ¬ë ë ë€ íìíì§ ììµëë€. ì°ëŠ¬ê° ëìíë ë ìŒë°ì ìž ìŽëŠì ì ê±°íììì€.
ìŽë ì .
>
- ì í ëì ìžìë ëŽë¶ìë ë€ë¥ž ê°ë¥ì±ìŽ ë§ìŽ ììµëë€.
컎íší° 곌íì ì믞, ë°ëŒì ê·žê²ì ë€ì ì±ê°ìë€.
Baseìì ìŽ ìŽëŠì ëŽë³Žë ëë€.ì í ëìí ìžì ì ì ëí ë§ì ì©ë륌 ì°Ÿì ì ììµëë€. 륌 ìíŽ ëì±
ìì í ë€ë¥ž ê²ì ì믞íë ì ì€ì íêž°ë².
>
ê³ ì ë íììŒë¡ @juliohm ì ë§ì§ë§ ê²ì묌ì ë€ì ê²ìíê³ ììµëë€.
ìŽë€ ìŽì ë ëìê² ì€ëë ¥ìŽ ììµëë€.
ì€ì ë³íìŽ ìë ê²ìŽ ì¢ìµëë€.
ì, ê·žëŠ¬ê³ ììì ì€ëª í ëë¡ innerë¡ ìŽëŠì ë°êŸžëëŒë ì€ì íêž°ë²ì ì¬ì í ââì¡Žì¬í ì ììµëë€.
ìŒë° ì í ì°šì ë²¡í° ê³µê°ìì ìì íë ìíìê° ìë ê²œì° ì ì ì íŽëŠ¬ë ëŽì ì ëí ë ì¹ìí ìŽëŠì ëë€. (ìíìë€ì ììì íë² ë¥Žíž ê³µê°ìì ëŽì íšìì ì ìŽëŒë ìŽëŠì ì¬ì©íë ê²ì ìœê² ì ìí ê²ì ëë€. "ëŽì "ì ê·žë¬í ê³µê°ì ëí ë€ë¥ž ê°ë¥í ìë¯žê° ììµëë€.)
ìŽ ì£Œì¥ì ì¢ì§ ììµëë€. íë²í ì¬ëë€ìŽ ê²ìŒë¥Žê³ ìë¡ìŽ ì ì í ëšìŽë¥Œ ë°°ìž ì ìêž° ë묞ì ì못ë ì©ìŽë¥Œ ê°ë¥Žì¹ê³ , ìíìë€ìŽ ìì ì ìì¬ì ë°íŽ ì못ë ì©ìŽë¥Œ ì¬ì©íëë¡ ê°ìí©ìë€.
ëŽë¶ì ì ìŽ ëªšë ììŒë©Ž íŒëë ì ììµëë€. ìŽë€ 겜ì°ìë ìŒì¹íì§ë§ ë€ë¥ž 겜ì°ìë ìŒì¹íì§ ìì ìë ìêž° ë묞ì ëë€(íì¬ ì ì ì믞륌 ì ì§íë 겜ì°).
ì°ëŠ¬ë ë ë€ íìíì§ ììŒë©° ë ìŒë°ì ìž ìŽëŠì ì ê±°í©ëë€. ì°ëŠ¬ë ìŽ ìì ìì ëìí©ëë€.
ì í ëì ìžìë innerë 컎íší° 곌íìì ë§ì ë€ë¥ž ì ì¬ì ì믞륌 ê°ì§ê³ ììŒë¯ë¡ Baseìì ìŽ ìŽëŠì ëŽë³ŽëŽë ê²ì ë€ì ì±ê°ì ìŒì ëë€.
ì í ëìí ìžì ì ì ëí ë§ì ì©ë륌 ì°Ÿì ì ììµëë€. ìì í ë€ë¥ž ê²ì ì믞íë ì ì€ì íêž°ë²ì ê²œì° ëì± ê·žë ìµëë€.
ì, ê·žëŠ¬ê³ ììì ì€ëª í ëë¡ innerë¡ ìŽëŠì ë°êŸžëëŒë ì€ì íêž°ë²ì ì¬ì í ââì¡Žì¬í ì ììµëë€.
íì€í const â
= inner
ì ìí ì ìì§ë§ ì©ìŽê° ìŒì¹íì§ ììµëë€. 'ëŽì 'ì ìŒë°ì ìž ëŽì ì íìŒë¡ ì¬ì©íë ê²ì ì¢ìíì§ ìëë€ê³ ìê°íëì?
ìíìë€ìŽ ìì ì ìì§ì ë°íŽ ì못ë ì©ìŽë¥Œ ì¬ì©íëë¡ ê°ì
ìíìë€ì ì©ìŽê° ì³ê±°ë ê·žë¥Žì§ ìê³ ëšì§ êŽìµì ìŽê±°ë ë¹êŽìµì (ìŒêŽëê±°ë ìŒêŽì±ìŽ ìì ì ìì)ìŒ ë¿ìŽëŒë ê²ì ìê³ ììµëë€. (ê·žëŠ¬ê³ ëë¶ë¶ì ì¬ëë€ì ì² ìë²ì ëí ìŽì ìŽ ìêž° ë묞ì ìíì ê°ì§ ììµëë€.) ì 겜íì ë°ë¥Žë©Ž, ìíìë€ìê² ìì ìíìì 벡í°ë "ìí"ëŒê³ íê³ , ë¶ìë "ëšê²"ìŽëŒê³ íê³ , ìŽì€ 벡í°ë "ëžëì§ìŽ"ëŒê³ ë¶ëŠ¬ë©° ìê³ íê² ë¬ŽêŽì¬í©ëë€. ì ì¬íê², Juliaìì ëŽë¶ ì íì ì² ìê° dot(x,y)
ëë x â
y
ëŒê³ ë§íë©Ž 겜í ë§ì ìíìë í ë² ìŽì ëì ê¹ë°ìŒ ê²ìŽëŒê³ ìê°íì§ ììµëë€. í¹í ì©ìŽê° ìŽë¯ž ë€ì곌 ê°ìŽ ìŽíŽëê³ ìêž° ë묞ì
ëë€. ë§ì 맥ëœìì ëììŽ. (ë¹ì ìŽ "ìŽ íšì ê³µê°ìì ë íšìì ëŽì ì ì·šíëŒ"ê³ ë§íë©Ž ë¹ì ìŽ ëŽì ì ìžêžíê³ ìë€ë ê²ì ìŠì ìì§ ëª»íë ìíì륌 ì°Ÿì ì ììì§ë ì묞ì
ëë€.)
ë€ë¥ž íížìŒë¡, íë šë ìíìë ìëê³ ì¶ìì ìž ëŽë¶ ì í ê³µê°ì ë žì¶ ëì§ ìì ì¬ëë€(ìŠ, ëë€ìì ì¬ì©ì)ìê²ë ìµìíì§ ìì ì©ìŽ ê° ë í° ì¥ì 묌ì ëë€. "ì€ëŠ¬ììì ë 벡í°ì ëŽì ì ìŽë»ê² 구í©ëê¹?" FAQê° ë©ëë€.
ì¬êž°ì ìë¯žë¡ ì ì ííë ê² ìžì íŽê²°íŽìŒ í ìíì ìŽë €ìì ììµëë€. ì² ì 묞ì ë ìì í ížìì ì¬ì©ë²ì êŽí ê²ì ëë€.
ì í ëìí ìžì ì ì ëí ë§ì ì©ë륌 ì°Ÿì ì ììµëë€. ìì í ë€ë¥ž ê²ì ì믞íë ì ì€ì íêž°ë²ì ê²œì° ëì± ê·žë ìµëë€.
Juliaì ë€ë¥ž ë§ì íë¡ê·žëë° ìžìŽê° ëª ë
ëì dot
륌 ê°ê³ ìë€ë ì ì ì ìžíê³ ë 묞ì ê° ëì§ ìììµëë€. inner
ë ìë¡ìŽ íìì
ëë€.
ê¶ê·¹ì ìŒë¡ ìŽ(ëë ë€ë¥ž) íšìì ì² ìë ì믞 ì²Žê³ ë° ì¬ì© ì€ëš 겜ë¡ì ë¹íŽ ì¬ìí 묞ì ìŽì§ë§ ê· íìŽ dot
ì ì 늬íë€ê³ ìê°í©ëë€.
const â = inner륌 íì€í ì ìí ì ìì§ë§ ì©ìŽê° ìŒêŽì±ìŽ ììµëë€. 'ëŽì 'ì ìŒë°ì ìž ëŽì ì íìŒë¡ ì¬ì©íë ê²ì ì¢ìíì§ ìëë€ê³ ìê°íëì?
ëë ë¹ì ìŽ ìì§ë ê·žê²ì ìŽíŽíì§ ëª»íë€ê³ ìê°í©ëë€. ëŽì ëŽì ì ížì¶íë ë° ë¶ìŒì¹ê° ììµëë€. ê·žê²ì ì°ëŠ¬ ì€ ë§ì ì¬ëë€ìê² ë§€ì° êµ¬ì²Žì ìŽê³ ìžëªšìë ëŽë¶ ì íì
ëë€. sum(x.*y)
ìŽì ììµëë€.
dot
ëŒë ì©ìŽê° Juliaìì inner
ì ì믞륌 ê°ë ê²ìŒë¡ ëëë ê²œì° ìŽê²ì ë§ì ì¬ëë€ìŽ ì§ìŠì ëë ê²ìŽëŒê³ ì¥ëŽí ì ìë ìì¬ì ì¬ììŽ ë ê²ì
ëë€. ì ë êµì€ìì êµìë€ìŽ ë€ì곌 ê°ìŽ ì€ëª
íë ê²ì 볌 ì ììµëë€. "ìŽì ì°ëŠ¬ ê³µê°ì ëŽë¶ ì íì ì ìí ê²ìŽì§ë§ Juliaììë ëêµ°ê°(@stevengj)ê° ê·žê²ì ì ìŽëŒê³ ë¶ë¥Žêž°ë¡ ê²°ì íìµëë€."
ëì€ì ì°žì¡°í ì ìëë¡ ìŽ ì€ë ë륌 ì€í¬ëŠ°ì·ìŒë¡ ì°ì ê²ì ëë€.
ë¹ì ì dot
ì©ìŽë¥Œ 죌ì¥íë ì ìŒí @stevengj ìŽë©°, ë€ë¥ž ë구ë ìŽì ë°ëíì§ ìììµëë€. ê²°ì ì ëŽëŠ¬êž° ì ì ìŽ ì¬ì€ì ë€ì ìê°íŽ 볌 ì ìë€ë©Ž ì¢ì ê²ì
ëë€.
ê·žê²ì ì°ëŠ¬ ì€ ë§ì ì¬ëë€ìê² ë§€ì° êµ¬ì²Žì ìŽê³ ìžëªšìë ëŽë¶ ì íì ëë€. sum(x.*y) ìŽìì ëë€.
"ëŽì "ìŽ ââ¿ì ì íŽëŠ¬ë ëŽì ë§ ì°žì¡°í ì ìë€ê³ ìê°íë€ë©Ž const â
= inner
륌 ì ìíŽìë ì ëë©° â
(x::AbstractVector{<:Real}, y::AbstractVector{<:Real}) = inner(x,y)
ë§ ì ìíŽìŒ í©ëë€.
ë ê°ì§ ë°©ë²ìŒë¡ ì¬ì©í ìë ììµëë€. inner
ë â
륌 ì€ì ëììŽë¡ ì¬ì©í ì ììµëë€(ìŽ ê²œì° ì€ì ì°ì°ìë ê·íì ë§í¬ìì "ì못"ëê³ ìŽëŠ ì§ì ìŽ ìŒêŽëì§ ìì) ëë ì€ì ëììŽ ê° ììµëë€(íëì í¹ë³í ê²œì° ì ìž).
ì ë êµì€ìì êµìë€ìŽ ë€ì곌 ê°ìŽ ì€ëª íë ê²ì 볌 ì ììµëë€. "ìŽì ì°ëŠ¬ ê³µê°ì ëŽë¶ ì íì ì ìí ê²ìŽì§ë§ Juliaììë ëêµ°ê°(@stevengj)ê° ê·žê²ì ì ìŽëŒê³ ë¶ë¥Žêž°ë¡ ê²°ì íìµëë€."
íí, ëë ìŽ ììì íë êµììê²ì ìŽì ë°ì ë€ìŒ ì©ìê° ìë€. ì§ì§íê², "ëŽì "ìŽëŒë ì©ìŽê° ââ¿ììë§ ì¬ì©ëìë€ê³ ìê°íê±°ë ê·ž ì©ìŽê° ë€ë¥ž Hilbert ê³µê°ìì ì¬ì©ëë ê²œì° ìíìë€ìŽ ë¶ë žíë€ê³ ìê°íë€ë©Ž ë ëë¬ë³Œ íìê° ììµëë€.
ìŽê²ì ìì¬ì ì¬ììŽ ë ê²ìŽë€
ì§ì§íê²?
ìŽ ë Œìë íìíê³ , ì믌ì ìŽë©° 걎ì€ì ìž í겜 ìŽëŒê³ ìê°í ì ìë ê² ìŽììŒë¡ 칚ìëê³ ìë ê² ê°ìµëë€. ì견곌 배겜ì ë€ë¥Žì§ë§ ìžì 공격ìŽë ë구륌 ííë ê²ì ìŒê°íìê³ ëªšë ë¹ì¬ìê° ì ìë¡ ìì ì 죌ì¥ì ìë Œíê³ ìë€ê³ ê°ì íŽ ì£Œììì€.
ì ë êµì€ìì êµìë€ìŽ ë€ì곌 ê°ìŽ ì€ëª íë ê²ì 볌 ì ììµëë€. "ìŽì ì°ëŠ¬ ê³µê°ì ëŽë¶ ì íì ì ìí ê²ìŽì§ë§ Juliaììë ëêµ°ê°(@stevengj)ê° ê·žê²ì ì ìŽëŒê³ ë¶ë¥Žêž°ë¡ ê²°ì íìµëë€."
ì¬êž°ìì StevenìŽ êµììì 죌목íë ê²ë ê°ì¹ê° ìì ì ììµëë€. :ëì§:
ëë ëí inner
dot
륌 ì ê±°íë ê²ì ëíŽ ë
Œì ì€ì
ëë€. dot
ì©ìŽë ìë¹í ë늬 ì¬ì©ëë©° Juliaì íšìê° ììŒë©Ž Python ë° MATLABì ìì ë ëëŒìŽ ìŒìŽ ë ê²ì
ëë€. ê·žë¬ë inner
ëŒë ì©ìŽë ë§ìì ëëë€. ââ¿ê° ìë ë²¡í° ê³µê°, í¹í íë ¬ì ë ì í©íêž° ë묞ì
ëë€.
ë§ë¶ì¬ì, Juliaìì ë©ìëê° ë¬Žìì íëì§ í
ì€ížíë ëì dot
ë ì€ì 벡í°/íë ¬ììë§ ìëíë€ë ê²ì ìììµëë€. ìëì ìžê°ì?
ëŽë¶ì ì ìŽ ëªšë ììŒë©Ž íŒëë ì ììµëë€. ìŽë€ 겜ì°ìë ìŒì¹íì§ë§ ë€ë¥ž 겜ì°ìë ìŒì¹íì§ ìì ìë ìêž° ë묞ì ëë€(íì¬ ì ì ì믞륌 ì ì§íë 겜ì°).
@stevengj vecdot
륌 inner
ë¡ ë°êŸžê³ $# dot
ë ì ì§íë ê²ìŽ ìì í í°ë¬Žëììµëê¹? ë°ë¡ ì§êž, ê·íê° ì€ëª
íë ì íí 묞ì ë inner
vecdot
ë¡ ìŽë¯ž ì¡Žì¬í©ëë€.
ìê² ìµëë€... êž°ëí©ëë€. ì€ìê° ì ìì 묎ììžê°ì? ê·žë€ì:
dot
륌 ë ëì ë²ìì ì íì ëí ìŒë°ì ìž ëŽë¶ ì íìŒë¡ ìì©í©ëë€. 벡í°ì 벡í°ììë ìŽë¯ž ì¬ë°ë¥Žê² ì¬ê·ì ìŽì§ë§ íë ¬ ë±ìì ìëíê² ë§ë€ ê²ì
ëë€( @jebej dot
ì inner
ë ë€ ê°ì§ê³ ìë ê² ê°ì§ë ììµëë€). Stevenì ì°ëŠ¬ê° ëŽë¶ ì íì ì믞íêž° ìíŽ ìµìí dot
륌 구ìŽì²Žë¡ ì¬ì©íë©° ìŽê²ì ì못ë ê²ìŽ ìëëŒ ëšì§ ì©ìŽìŒ ë¿ìŽëŒê³ ë§í©ëë€.norm
륌 ìì dot
ì 몚ë AbstractArray
ì ê±žì³ ì¢ ë ìŒêŽì± ìê² ë§ëë ê²ì ê³ ë €íŽë³Žìžì. ê²°êµ opnorm
ì°ì°ì ê·ë²ì ëì
í©ëë€( AbstractMatrix
). norm(matrix) == vecnorm(matrix)
(ì ê·-구ì íêž°ë²)륌 ì¬ì©í©ëë€. ìŽ ìì ìì ìë§ë vecdot
ë° vecnorm
ê° ë ìŽì íìíì§ ììµëê¹?ë§ëì? ëŽ ìê°ì ìŽê²ë€ì ì ìŽë "깚ëí" ìží°íìŽì€ë¥Œ ì¬ì©íì¬ ë¹êµì ìŒêŽë ì í ëìí ìŽìŒêž°ë¥Œ ì»ì ì ìë€ê³ ìê°í©ëë€. ì¬êž°ì ìŒë° ìœëë ëŽë¶ ì í ê³µê° ìì
ì ìí ìì ì ìž ììŒë¡ dot
ë° norm
륌 ì¬ì©í ì ììµëë€. ì í곌 묎êŽí©ëë€.
@andyferris , ì, ìŽë ê² ë³ê²œíë©Ž dot
ë° norm
ë§ íìíë€ê³ ìê°í©ëë€(ìŽì ë 몚ë ì°šìì ë°°ìŽ ëë ë°°ìŽì ëí ì¬ê· ì íŽëŠ¬ë ì°ì°ìŽì§ë§ ê·ë²ì ê²œì° norm(x,p)
ë p-norm) ë° opnorm
ë¡ ì ìíê³ ë ìŽì vecdot
ëë vecnorm
ê° ììµëë€.
dot
ë¡ì ë³ê²œì íì¬ dot
ê° #22220(#22220( ê·ž ìì ìì vecdot
륌 ì ê±°íë ê²ì IIRCë¡ ê°ì£Œëì§ ìììµëë€. ê·žë¬ë ìŽë 0.7ìì ëì
ëììŒë¯ë¡ ì€ì 늎늬ì€ë ìœë륌 ìììí€ì§ ììµëë€. ì¬ì€, 0.6ì dot
ë ìŽë¯ž ìì ì°šì ë°°ìŽì ì íŽëŠ¬ë ëŽì ì
ëë€. ìŽë ì ë ì°ì°ì
ëë€(#22374). ì¬êž°ì ì ìë ë³ê²œ ì¬íì íŽë¹ 0.6 ëìì ë³µì ë° íì¥íê³ norm
륌 ë³ê²œíì¬ ìŒì¹íëë¡ í©ëë€.
í ê°ì§ ì§ë¬žì norm(x,p)
ê° norm(x[i])
ëë norm(x[i],p)
ì¬ê·ì ìŒë¡ ížì¶í ì§ ì¬ë¶ì
ëë€. ë ë€ ì ì¬ì ìŒë¡ ì ì©í ëìì
ëë€. ëë ì ìê° ë ìŒë°ì ìŽêž° ë묞ì ì ìì êž°ëê³ ììµëë€ x[i]
ë p-normìŽ ìë norm
ë§ ì ìíë ììì íì€ ë²¡í° ê³µê°ìŒ ì ììµëë€. norm
륌 ì¬ê·ì ìŒë¡ ížì¶íë ê²ë vecnorm
ê° íì¬ íë ìŒìŽë¯ë¡ vecnorm
륌 norm
ë¡ ì¬ì©íì§ ìë ê²ê³Œ ìŒì¹í©ëë€.
@jebej , dot
ë§ì€í° ë° 0.6 몚ë ë³µì¡í ë°°ìŽìì ìëí©ëë€. ì륌 ë€ìŽ dot([3im],[4im])
ë 12+0im
$ 륌 ì¬ë°ë¥Žê² ë°íí©ëë€.
norm(matrix)
륌 Frobenius íì€ìŒë¡ ë³ê²œíë ê²ì ëí ë ë€ë¥ž ì¢ì ì ì íšì¬ ì ë Žíë€ë ê²ì
ëë€. ë íë ¬ì ì°šìŽê° ìŒë§ë í°ì§ ìêž° ìíŽ norm(A-B)
륌 ì¬ì©íë ê²ìŽ ìŒë°ì ìŽì§ë§ í¹ì íì€ ì íì ëíŽìë ê·žë€ì§ ì 겜 ì°ì§ ìì§ë§ ë§ì ì¬ì©ìë íì¬ êž°ë³žê°ìŽ norm(matrix)
ë SVD륌 ê³ì°íŽìŒ í©ëë€.
ëª ê°ì§ 죌ì ì¬íì ì€ì¬ìŒë¡ í©ìê° íì±ëë ê²ì 볎ë ê²ì ë©ì§ ìŒì ëë€! :) (ëêµ°ê°ê° ë륌 ë¥ê°íì§ ìë í(ëìíìŽ ìë ê²œì° ìííììì€!) ìŽì ì ìí íê·žê° íížíì§ ìë í, #26997 ë°°ì¡ í íì¬ í©ì í¬ìžížë¥Œ 구ííëë¡ íê² ìµëë€.) ìµê³ !
í¥í 찞조륌 ìí ë ë€ë¥ž ë§í¬: https://math.stackexchange.com/a/476742
ì¬êž°ì ììì ìŒë¡ ì±íëê³ ìë ì못ë ëª ëª ê³Œ í ë§ìì ìíŽ ë¶ê³Œë ì못ë ê²°ì ì ì€ëª íêž° ìíŽ. ëŽì 곌 ëŽì ì ìíì ìì±ìŽ ë€ëŠ ëë€. ë¹ì ì ìí 묞íìì ì ìë €ì§ ê²ì ë°ëíë ì 첎 컀뮀ëí°ë¥Œ ê°ìíê³ ììµëë€.
ê·žëŠ¬ê³ ë¯žëì ë ìë€ì ìíŽ, ì°ëŠ¬ê° ê³µë ê²°ì ì íë€ë©Ž ëì 묎ìì íìŽìŒ íëì§:
# make dot what it is, a NOTATION
â
(x::AbstractVector, y::AbstractVector) = sum(x[i]*y[i] for i in indices(x))
# replace the name dot by the more general inner
inner(x, y) = # anything
ëë ì°ëŠ¬ ê° ì°ì£Œ ìì ââ¿ ìŽìžì 몚ë ê²ì ëŽì ì ëíŽ "ëŽì " ìŽëŒë ì©ìŽ 륌 ì¬ì© íë ìµìŽ ì ì¬ëë€ ìŽ ë ê²ìŽëŒê³ ìê°í©ëë€. ìŽ íì ì ìžìì ëŽëêž° ìíŽ (ì£Œë¡ ë€ë¥ž ê°ë°ìë€ì íë°íšìŒë¡ìš) ìŽ ì€ë ëì ëŽ ìì§ë¥Œ ê°ìí ì ììë ê²ì ì¢ì ìŒì ëë€! ëŽì ì ë ìŽì ëšìí "íêž°ë²"ìŒë¡ ë¶ë¥ëì§ ììµëë€. ëì ëŽì ì ì믞íë êž°ížê° ë©ëë€(몚ëê° ìê³ ìë¯ìŽ êž°ížì ì믞륌 í ë¹íë ê²ì "íêž°ë²"ì ë°ëì).
ì죌 ì¢ì ìì¬ê²°ì :ë°ì: íì€í í©ìììµëë€. ìì ëêžì ìœìŒë©Ž 몚ëê° ìŽë»ê² ëìíëì§ ì ì ììµëë€. :+1:
ëë ìŽë»ê² í©ìê° ëìëì§ ë§€ì° ëª ííê² ìŒë¶ ì견ì ìžì©íŽìŒ í ìë ììµëë€.
>
ì€ë¥žìªœ - vecdotì ìŽëŠì innerë¡ ë³ê²œí ì ììµëë€.
@andyferris ì ìíŽ
ìµì 2(ìë§ë ë ëì): ìíì ìŒë¡ ë ì íí ìŽëŠì ì¬ì©í©ëë€.
ìì
ì¹ì
ê·žë¬ë ê·ë²ìŒë¡ 묎ììíŽìŒí©ëê¹?
@Jutho ì ìíŽ
ëìí©ëë€. vecdotì ëììŒë¡ ëŽë¶ì ìë¡ìŽ ë°©ë²ì ëì í ì ììµëë€.
@Jutho ì ìíŽ
ëë ëí vecdot ìŽëŠìŽ ìŽìíë€ë ê²ì ìììµëë€. ì¬ì€, ëë ê·žê²ìŽ ì¡Žì¬íëì§ì¡°ì°š 몰ëê³ ê·žê²ì ëí ëŽ ìì ì êž°ë¥ì ë§ë€ììµëë€... innerëŒê³ í©ëë€.
@jebej ì ìíŽ
ê·žëŠ¬ê³ ë ë§ì...
ì¬ëë€ì ìë¡ í° ìëŠ¬ë¡ í ë¡ í ì ìê³ ë§ì ë¶ìŒì¹ ì§ì ì ì êž°í ì ìì§ë§ ì€ëì ë°ê³ ì°¬ë° ìë¡ ì ê· íì ì ì§íšìŒë¡ìš ì¬ì í í©ìì ëë¬í©ëë€(íì ë§ì¥ìŒì¹ë ìëì§ë§). (ì¬êž°ìë ê° ìµì ì ì¥ëšì ìŽ ëªšë ìë€ë ì ì ëìí©ëë€.) ì¬êž°ìì (ì ì ì ìŒë¡!) ì €ì²ëŒ 볎ìŽë ê²°ê³Œê° ìíë ê²°ê³Œê° ìë ê²ìŽ ì ê°ìŽì§ë§ ìŽë»ê² ìê°íìëì§ ì ëªšë¥Žê² ìµëë€. ëë ëŽ ìì§ë¥Œ "ë¶ì¬"íë€.
(ë¬Œë¡ ìµì¢ ê²°ì ìŽ ëŽë €ì§ ê²ì ìëëë€. ìì§ PRë ìê³ ë³í©ë ê²ë íšì¬ ì ìµëë€.)
ëë ì°ëŠ¬ê° ìžìŽì ì²ì€ì êž°ë°ìŒë¡ ê²°ì ì ëŽëŠŽ ì ìꞰ륌 ë°ë ë¿ì
ëë€. ëêµ°ê° Julia륌 ëêµ¬ë¡ ì ííë€ë©Ž ê·ž ì¬ëì ìµìí inner
ì íìŽëŒë ì©ìŽë¥Œ ë€ìŽëŽ€ì ê²ì
ëë€. ê·žê²ì ꜀ ëì€ì ìž ê°ë
ìŽë©° ìŽêµì ìŽëŒë ê²ê³Œë ê±°ëŠ¬ê° ë©ëë€. ìŽêµì ìž ê²ë€ìë "ì§ìì ìëì±", "ìì ìŽë¡ "ìŽ í¬íšë©ëë€. ìŽê²ì ë ë늬 íŒì ž ììŒë©° ì ë ìŽë¬í ì íì ì©ìŽë¥Œ í¬íšíë ê²ì ë°ëí©ëë€.
ê²°êµ ì ë 곌í 컎íší , ìí ë±ì ìí ìµê³ ì ìžìŽìž ìžìŽë¥Œ ê°ê³ ì¶ìµëë€.
@juliohm , 몚ë 죌ì¥ì ì°ëŠ¬ê° ìê°íë ì²ì€ì íìì êž°ë°íìŒë©° ì°ëŠ¬ 몚ëë Julia륌 ê°ë¥í í ì¢ì ìžìŽë¡ ë§ë€ë €ê³ ë žë ¥íê³ ììµëë€. ìíì ì² ì륌 ê²°ì íì§ ìêž° ë묞ì í©ëŠ¬ì ìž ì¬ëë€ì ì©ìŽì ëíŽ ë€ë¥ž ê²°ë¡ ì ëë¬í ì ììµëë€.
첫짞, ììì ìžêžíë¯ìŽ @stevengj ì íì¬ ì ìì íì€í ëìíê³ ëŽë¶ ì íì ìŒë° ìŽëŠìŒë¡ dot
륌 ê³ ìí©ëë€. ëí ì ë ìŽ í ë¡ ìŽ ì§íëë ë°©ììŽ ë§ìì ë€ì§ ììŒë©° ì¬ë°ë¥Žê² ìžì©ëꞰ륌 ìí©ëë€. @juliohm , ë¹ì ìŽ ëìê² ë¶ì¬í ë ë²ì§ž ìžì©ë¬žì ëŽ ê²ìŽ ìëëë€.
ê·žë° ì믞ìì ì°¬ë° ìë¡ ì ìê°íë©Žì ë€ì곌 ê°ì ì ì ìžêžíê³ ì íë€. ë€ìì ëë¶ë¶ ëšì ìŽì§ë§ @stevengjê° ìžêží ì¥ì ì ëìí©ëë€. dot
ê° sum(x[i]*y[i] for i ...)
륌 ì믞íë ë³ëì ì¬ì© ì¬ë¡ê° ìœê² ìì ì ììµëë€. ì€ì ì íêž°ë²ìŽ ìíìì ê°ì¥ ë§ìŽ ì¬ì©ëë ê²œì° ì€ì ë¡ ìŽê²ìŽ ìŒë°ì ìŒë¡ ì믞ì
ëë€. ëŽë¶ ê³±ìŒë¡ì, ì€ì ì íêž°ë²ì ìŒë°ì ìŒë¡ (íì€í ë°°íì ìŽì§ë ìì§ë§) ì€ì ë²¡í° ê³µê°ì ììœëìŽ ììµëë€. ë€ë¥ž ì¬ì© ì¬ë¡ìë Ï
$$$ Ï â
n
n
ì€ì¹ŒëŒ 벡í°ì ê°ì ê²ì íì±ííë ê²ìŽ í¬íšë©ëë€. ìŽê²ì ë€ë¥ž ì€ë ëìì ëìê² ì§ì ë ë°ì ê°ìŽ íì¬ dot
ê° êµ¬íëë ë°©ì ë€ì ìë ëêž° ì€ íëì
ëë€. BLASê° ì€ì 벡í°ì ëíŽ dot
ë§ ì¬ì©íê³ ë³µìì 벡í°ì ëíŽ dotu
ì dotc
륌 구ë¶íêž°ë¡ ê²°ì íë€ë ì¬ì€ì ê³ ë €íŽìŒ í ë ë€ë¥ž 묞ì ì
ëë€. BLAS 배겜ì ê°ì§ ì¬ëë€ì ë³µì¡í 벡í°ë¥Œ ì¬ì©íì¬ ì§ì í ëŽì (ì: dotc
)ì ìí ë dot(conj(u),v)
ëë dot(u,v)
륌 ê³ì°í ì§ íŒëí ì ììµëë€. ê²ë€ê°, ê·žë€ì ìì ìë 벡í°ì 쌀ë ë³µì¬ë³žì 뚌ì ë§ë€ì§ ìê³ dotu
륌 ìííë ë°©ë²ì ì°Ÿì ì ììµëë€.
@Jutho 견ì ì ê·íì ê²ìŽë©° ê·íì ì 첎 ì견ì ìëì ë³µì¬ë©ëë€.
vecdotì ëììŒë¡ ìë¡ìŽ ëŽë¶ ë©ìë륌 ëì í ì ìë€ë ì ì ëìíì§ë§ vecnormì "ë첎"íë ì¢ì ìŽëŠì ëªšë¥Žê² ìµëë€. ì¬ì€, ëë vecnormìŽ ê·žë ê² ëìë€ê³ ìê°íì§ ììµëë€. ë²¡í° ë žëŠì ì°ëŠ¬ê° ìíë ìì ì ëíŽ ì í늜ëê³ ëª ìì ìž ì©ìŽì ëë€.
ìŽìšë , ìžì©ì ì°ëŠ¬ê° ìŽ ì£Œì ì ëíŽ ìê°í ë ì¬êž°ìì ë§ì ì¬ëë€ìŽ ë°ëŒë ê²ìŽ 묎ììžì§(ì ìŽë ìµìŽì ìì°ì€ë¬ìŽ ìê°ìŒë¡ì) 볎ì¬ì£Œêž° ìí ê²ì ëë€. ìê°ìŽ ì§ëšì ë°ëŒ ìë§ìŽ ë°ëìë€ë©Ž ê·žê²ì ë ë€ë¥ž ìŽìŒêž°ì ëë€. ë ìì ì Hilbert ê³µê°ì ì¬ì©íì¬ ëªšëžë§íë ëì ëŽ ëšžëŠ¬ìì "ì "ìŽëŒë ì©ìŽë¥Œ ì ë 꺌ëŽì§ ìì ê²ì ëë€. ëŽê° ë°°ìŽ ê²ê³Œ ìŒì¹íì§ ìê³ ë¶ìì°ì€ëœê² ë껎ì§ë€.
@Jutho : ê²ë€ê°, ê·žë€ì ìì ìë 벡í°ì 쌀ë ë³µì¬ë³žì 뚌ì ë§ë€ì§ ìê³
dotu
륌 ìííë ë°©ë²ì ì°Ÿì ì ììµëë€.
dotu
êž°ë¥ì ëŽë³ŽëŒ ì ìë ê°ë¥ì±ìŽ ëëë¡ ì êž°ëììµëë€(ì: #8300 ì°žì¡°). ëë ìŽê²ìŽ ëëë¡ ì ì©í íšìëŒë ë° ëìí©ëë€. ë³µì¡í ë²¡í° ê³µê°ì ëíŽìë ëì¹ ìì í(ìžíŽì íìŽ ìë) ííìž ë¹ê³µì¡ ì íŽëŠ¬ë "ëŽì "(ì€ì ë¡ë ë ìŽì ëŽì ìŽ ìë) dotu(x,y) == dotu(y,x)
(ê³µì¡ ìë) . ê·žë¬ë ê·ž ì°ì°ì ì ì©ì±ì ââ¿ì êµíëì§ ììµëë€. ì륌 ë€ìŽ, ìŽë¬í ì¢
ë¥ì ê³±ì ì¢
ì¢
ìížì± ì ê²°ê³Œë¡ Maxwell ë°©ì ìì ëí 묎í ì°šì ë²¡í° ê³µê°(íšì)ì ëíë©ëë€(Ʞ볞ì ìŒë¡: ìŒë°ì ìž ìì€ ì¬ë£ì Maxwell ì°ì°ìë "ë³µì ëì¹ íë ¬"곌 ì ì¬ - ê³µì¡ëì§ ìì "ëŽì "ìì ëì¹). ë°ëŒì dot(x,y)
륌 ìŒë° ì íŽëŠ¬ë ëŽì (첫 ë²ì§ž ìžìê° ìŒ€ë ëš)ìŒë¡ ì ìíë©Ž 몚ë ë²¡í° ê³µê°ìì ë¹ê³µì¡ ì íŽëŠ¬ë ê³±ì ëíŽ dotu(x,y)
íšì륌 ì ìíë ê²ìŽ ë§€ì° ìì°ì€ëœìµëë€. ê·žê²ìŽ ì믞ê°ìë ê³³. ê·žë¬ë dot
ì ëí ìžìë¡ dotu
íšìì ê°ë¥ì±ì 볎ìŽì§ ììµëë€. ëë¶ë¶ì ê²œì° ë³µì¡í ë²¡í° ê³µê°ìŒë¡ ìì
í ë ê³µì¡ ê³±ì ìíë¯ë¡ ìŽê²ìŽ ì¬ë°ë¥ž Ʞ볞 ëìì
ëë€.
ê·žë¬ë í ê°ì§ ê°ë¥ì±ì dot(x,y) = sum(x[i]'*y[i] for i = 1:length(x))
륌 ì ìíë ê²ìžë° ìŽê²ìŽ íì¬ ë§ì€í°ìì ì ìë ë°©ì(0.6 ìë)ìŽê³ inner(x,y)
륌 ì§ì í ëŽì ìŒë¡ ì ìíë ê²ì
ëë€. ìŽê²ì ë êž°ë¥ì 몚ë ì ê³µíë ìŽì ìŽ ììŒë©°, ë ë€ í¹ì 겜ì°ì ì ì©í ì ììµëë€. ê·žë¬ë íë ¬ ë°°ìŽì ì ìžíê³ ê±°ì íì ìŒì¹íë ë ê°ì§ íšìê° ììŒë©° ë ì€ íë륌 ì¬ì©í ìꞰ륌 ê²°ì íë ê²ìŽ ìœê° íŒëì€ë¬ìž ê² ê°ìµëë€. ë§ì ì¬ëë€ìŽ inner
륌 ì믞í ë dot
ëŒê³ ì°ê³ ëë¶ë¶ì ê²œì° ì ìëíì§ë§ íë ¬ ë°°ìŽìŽ ì ë¬ëë©Ž ìœëìì ìêž°ì¹ ìì ìì
ì ìíí©ëë€. ëŽ ìì¬ì 99%ì ê²œì° ì¬ëë€ìŽ ì§ì í ëŽë¶ ì íì ìíê³ "ì íì í©ê³" ë²ì ìŽ ì€ì ë¡ íìí ê²œì° íší€ì§ì ëšê²šë ì ìë€ë ê²ì
ëë€(ëšì§ sum
륌 ížì¶íë ê²ê³Œë ëì¡°ì ìŒë¡) ).
@juliohm , ìŽëŠìŽ ê°ê°ì ìžì©ë¬ž ìì (ìë ëì ) ìë€ê³ ìê°íì¬ ê·íì ê²ì묌ì ì못 ìœììŒë¯ë¡ @jebej ì ìžì©ë¬žìŽ ì ìê² ìë€ê³ ìê°íìµëë€. ì£ì¡í©ëë€.
@stevengj , ëë íì€í dot(x,y) = sum(x[i]'*y[i] for i = 1:length(x))
륌 í©ëŠ¬ì ìž êž°ë³žê°ìŒë¡ ìê°íì§ ìììµëë€. Ï â
n
ì ê°ì ê²œì° ì²« ë²ì§ž ëë ë ë²ì§ž ìžìì ë³µìì/ìì 쌀ë ê° íìíì§ ììµëë€. ê·žëì ëŽê° ë§íê³ ì íë ê²ì, ì€ì ì íêž°ë²ìŽ 곌í ê³µìì ì¬ì©ëë ë§ì(ê·žë¬ë ì€ì ë¡ ì ë¶ë ìë) 겜ì°ì ê·ž ìë¯žê° dotu
, ìŠ íì© ììŽ sum(x[i]*y[i] for i = 1:length(x))
ì ìŒì¹íë€ë ê²ì
ëë€. ì€ì ë²¡í° ê³µê°ì ëŽì ëë ì¢ ë ìŒë°ì ìž êµ¬ì±ìŒë¡.
ë°ëŒì ëŽê° ëì ì ìì íë€ë©Ž(ë°ëì ì¹ížíì§ë ìì§ë§) ë ê°ì§ êž°ë¥ìŽ ììµëë€.
dot(x,y) = sum(x[i]*y[i] for i...)
, ìŽë ì¬ì í ì€ì 벡í°ì ëí ì¬ë°ë¥ž ëŽì ìŽì§ë§(ëŽì ìŽëŒë ì©ìŽì ìµìíì§ ìê±°ë ìµìíì§ ìì ì¬ëë€ì ì¬ì© ì¬ë¡ìŒ ê°ë¥ì±ìŽ ìì) Ï â
n
ì ê°ì ë³Žë€ ìŒë°ì ìž êµ¬ì±ë íì©í©ëë€.
inner(x,y)
ë íì© ë° ì¬ê·ê° í¬íšë íì ì íší ëŽë¶ ì íìŒë¡ ë³Žë€ ìŒë°ì ìž êž°ì 컚í
ì€ížìì ì¬ëë€ìŽ ì¬ì©í ê²ì
ëë€.
ëë ìŽê²ì Julia Languageìì ì±ííêž°ì ì¢ì ì íìŽëŒê³ ì¹ížíì§ë ìì§ë§ ìŽê²ìŽ ë§ì 묞íìì ì¬ì©ëë ë°©ììŽëŒê³ ìê°í©ëë€. ì€ì ì ìŽ ì¬ì©ëë©Ž ì€ì 벡í°ì 맥ëœìì ëŽì ìŒë¡ ì¬ì©ëê±°ë ìì¶ì ì믞íë ì¢ ë ìŒë°ì ìž êµ¬ì±ìì ì¬ì©ë©ëë€. ììì ë²¡í° ê³µê°ì ëí ìŒë°ì ìž ëŽì ì ìëí ë ëë¶ë¶ì 곌í 묞í(ê·žë¬ë íì€í ë°ë ì륌 ë³Žì¬ ì£Œììµëë€)ì <u,v>
ëë <u|v>
ë¡ ì íë©ëë€(ì¬êž°ì 첫 ë²ì§ž íêž°ë²ìë ì¬ì í ë€ì곌 ê°ì ë
Œìê° ììµëë€. ë ìžì ì€ ìŒ€ë ).
ëë ìŽ ì ììŒë¡ ìŽ ì ììì§ë§, ëë ëšì§ dot
륌 ìŒë° ëŽë¶ ì íìŒë¡ ê°ì§ê³ ë ëê°ìŽ ì ìŽ ì ìììµëë€. ê²°êµ, ê·žê²ì ì¢ì 묞ì륌 ê°ì§ê³ ìë 묞ì ìŽê³ , ëë ëêµ°ê°ê° ìŽ "ëììž" ì íì ê±žë € ëìŽì§ ê²ìŽëŒê³ 믿ì ì ììµëë€.
@Jutho , ëë dot
륌 ìì¶ì ì믞íë ê²ìŒë¡ ì ìíë ê²ìŽ ë묞 ìŒìŽ ìëëŒë ë° ëìí©ëë€. ë¬Œë¡ ë ê°ì§ ë°©ë² ëªšëìì ì륌 ì°Ÿì ì ììµëë€. ì륌 ë€ìŽ, íë¡ê·žëë° ìžìŽì ëì€ì ìž ëŒìŽëžë¬ëŠ¬ìì:
ë¹ê²°í©: Numpy dot
(ê·žëŠ¬ê³ êž°ìŽíê²ë ëŽë¶ ), Mathematicaì Dot
, Maxima .
, BLAS dotu
íì©: Matlabì dot
, Fortranì DOT_PRODUCT , Mapleì DotProduct
, Petscì VecDot
, Numpy vdot
, BLAS dotc
( Fortran 77ì ì€ë²ë¡ë©ì ìíëëŒë ìŽê²ì dot
ëŒê³ ë¶ë¥Žë ê²ì ë¶ê°ë¥íê² ë§ë€ììµëë€.), Eigen's dot
ííž, ê³µì¡ ëŽì ì ìŒë°ì ìŒë¡ êµê³Œììì ë³µì¡í 벡í°ì ëí "ëŽì " ê°ë
ì "ìì°ì " íì¥ìŒë¡ ìê°ë©ëë€. ë¹ì ìŽ ìíë ê². (Matlab, Fortran, Julia, Maple곌 ê°ì íì€ ëŒìŽëžë¬ëŠ¬ìì conjugated dot
íšì륌 ì ê³µíë ìžìŽ ì€ Mapleë§ìŽ unconjugated ë³íì ì ê³µíì¬ ìì ë¶ì¡±ì ììíë€ë ì¬ì€ì ê³ ë €íììì€.) ë°ë©Žì, ë¹ê³µì¡ dotu
íšìë í¹ì í í¹ë³í 겜ì°(ìŒë¶ë ììì ìžêží)ìì (볎충ìŒë¡) ížëŠ¬í©ëë€.
dot
ì inner
ê° ëªšë ìë ê²œì° ë§ì ì¬ëë€ìŽ ìì ì ìœëê° inner
ìŽêž°ë¥Œ ìí ë ì€ìë¡ dot
륌 ì¬ì©íê² ë ê²ìŽëŒê³ ìê°í©ëë€. ìŒë°ì ìž. (ëë Numpyì inner
ê° ë°ë¡ ê·žë° ì¬ê³ ë¡ ìžíŽ ë¹ê³µì¡ìŒ ê²ìŽëŒê³ ì¥ëŽí©ëë€. ê·žë€ì ì€ì ë°°ìŽì ìŒëì ëê³ êµ¬ííìŒë©° ë³ê²œíêž°ì ë묎 ëŠì ëê¹ì§ ë³µì¡í 겜ì°ì ëíŽ ìê°íì§ ìììŒë¯ë¡ ì¶ê°íìµëë€. ìŽìíê² ëª
ëª
ë vdot
.) ë°ë©Žì dot
ë° (ìë§ë) dotu
ê° ìë ê²œì° dot
ê° êž°ë³ž ì íìŽê³ dotu
ë í¹ìí ê²œì° ë³íì
ëë€.
( âšu,vâ©
, âšu|vâ©
ëë (u,v)
ê° ììì Hilbert ê³µê°ìì ëŽë¶ ì íì ëí ë ìŒë°ì ìž íêž°ë²ìŽëŒë ë° ëìí©ëë€. ìŽë¬í íêž°ë²ì ì ê° ìŒë°ì ìŒë¡ ì¬ì©íë ê²ì
ëë€. ê·žë¬ë ìŽë¬í íêž°ë²ì Juliaì nonstarter. ì ëìœë ëêŽížë¥Œ íšì/맀í¬ë¡ ížì¶ë¡ 구묞 ë¶ìíë ê²ì ëí í ë¡ ìŽ ìììµëë€(ì: #8934 ë° #8892, íì§ë§ ì묎ë°ë ê°ì§ ìììŒë©° ìŽê²ì 곧 ë³ê²œë ê² ê°ì§ ììµëë€.)
ê·íì íê°ì ì ì ìŒë¡ ëìí©ëë€ @stevengj .
ëë.
ëë ì°ëŠ¬ ì€ í ëª ìŽ PRìì ë 구í ì€ íë륌 ê°ì§ê³ ëê³ ê·žê²ìŽ ìŽë»ê² ëì€ëì§ ëŽìŒ í ëëŒê³ ìê°í©ëë€.
@Jutho ì ë íì Pauli íë ¬ìŽ ìë ëŽì ì ê³ ì°š í ìì ëí ìì¶ì ìœìŽë¡ 볎ììµëë€... ë²¡í° ê³µê° ì€ íëë ì€ì 3Dì ëë€.
ëë âšu,vâ©, âšu|vâ©, ëë (u,v)ê° ììì íë² ë¥Žíž ê³µê°ì ëí ëŽì ì ëí ë³Žë€ ìŒë°ì ìž íêž°ë²ìŽëŒë ë° ëìí©ëë€. ìŽë¬í íêž°ë²ì ì ê° ìŒë°ì ìŒë¡ ì¬ì©íë íêž°ë²ì ëë€. ê·žë¬ë ìŽë¬í íêž°ë²ì Juliaìê²ë ììíêž° ìŽë €ìŽ íêž°ë²ì ëë€.
ì€ì ë¡ âšu,vâ©
ê° ìëíëë¡ íë ê²ìŽ ê°ë¥í©ëë€.
@StefanKarpinski : ì€ì ë¡ âšu,vâ©ê° ìëíëë¡ í ì ììµëë€.
ë¬Œë¡ ìŽ ì íí íêž°ë²ì ë·ë°ì¹šíë ê²ì #8934ìì ì ìëìì§ë§ ì묎ë°ë ê°ì§ ìììµëë€. (ëí 꺟ì êŽížë ë€ë¥ž ìŒë°ì ìž ì©ë륌 ê°ì§ê³ ìë€ë ì ì ì ìíììì€. ì륌 ë€ìŽ âšuâ©ë ì¢
ì¢
ìŽë€ ì¢
ë¥ì íê· ì ëíë
ëë€.) ìŽê²ì 깚ì§ì§ ììŒë©° ì¬ì í ìŽë ìì ìì ì¶ê°ë ì ìì§ë§ ê°ê¹ìŽ ììŒ ëŽì ììíë ê²ìŽ í©ëŠ¬ì ìŽì§ ìì ê² ê°ìµëë€. êž°ê°. ëí \langle<tab> x, y \rangle<tab>
륌 ì
ë ¥íë ê²ë ë§€ì° ë늬Ʞ ë묞ì Ʞ볞 ì°ì°ì ëí íë¡ê·žëë° êŽì ìì 귞늬 ížëŠ¬íì§ ììµëë€.
ê·žëŠ¬ê³ ì°ëŠ¬ë ê·žê²ì ëíŽ <>륌 ì€ë²ë¡ëí ì ììµëë€. ê·žë ì£ ?
ìëì
ìŽ ìì²ë ì€ë ëì ëí 몚ë ëêžì ìœìë€ê³ ë§í ìë ìì§ë§ ëª ê°ì§ ìì ì ê°ì¡°íê³ ì¶ìµëë€. ê·ž ì€ ìŒë¶ë ìŽì ì ìì±ëììµëë€.
dot
ê° êž°ë³žì ìŒë¡ íì©ëë ê²ìŽ ê°ì¥ ì¢ìµëë€. ì¬êž°ì ê²°ì í¬ìžížê° ììµëë€. ë ìŽì ìŽë¬í conj(dot())
ìì
ì ìíí íìê° ìë€ë ê²ìŽ ìŒë§ë ë€íìžì§ ë§íê³ ì¶ììµëë€!norm
ìì í¹í ì±ê°ì ìŒì
ëë€. ìµì í ìê³ ëŠ¬ìŠì ìœë©íê³ norm(delta x) < eps
ëë§ë€ ì€ì§íë €ë ê²œì° norm
륌 ìì±íê² ë©ëë€. íì§ë§ ìŽë¯žì§ë 묎ììžê°ë¥Œ ìµì ííê³ ì¶ê³ ìœë륌 ì€ííë©Ž ê°ìêž° í° ë°°ìŽì ì£œìŒ ì ìë(BLAS ë묞ì) SVDë¡ ììë©ëë€. ìŽê²ì í묞ì ìŽì§ ìê³ Optim.jlìì 묞ì 륌 ìŒìŒí€ê³ ìì¬í ì¬ì§ ììŽ ë€ë¥ž íší€ì§ììë 묞ì 륌 ìŒìŒìŒ°ìµëë€. vecnorm륌 ì°Ÿë í¹ë³í ìŽì ê° ìë í ì묎ë vecnorm
ê° ìë€ë ê²ì ìì§ ëª»í ê²ì
ëë€.dot
ë° vecdot
ë° norm
ë° vecnorm
륌 ë³í©íë ì룚ì
ì ìœê°ì ì ì°ì±ì ì ê±°íëëŒë ì¢ìµëë€. ë°°ìŽì 겜ì°. ê·ë²ì ê²œì° ì ìë ì¬ë¬ ê·ë²(ì: íë ¬)ìŽ ìë ìì
ì í ë ì¬ì©ìê° ìíë ê²ì ê·ë²ì ì»êž° ìíŽ í¹í ì 겜 ì°ì§ ìê³ norm
륌 ížì¶íë ê²ì
ëë€. ì ëë ê·ë²ì ê³ì°ì ëíŽì±ìŒë¡ ìžíŽ ì€ì ë³Žë€ ìŽë¡ ì ìž ê²œì°ê° ëë¶ë¶ì
ëë€. ê·žê²ë€ì ëí 2D ìŽë ìŽë¥Œ ì€í 늬ì§ë¡ íŽìíë ê²ìŽ ìëëŒ 2D ìŽë ìŽë¥Œ ì°ì°ìë¡ íŽìíë ë° ê³ ì í©ëë€(ìŽë¯žì§ë 2D ìŽë ìŽìŽì§ë§ ì ì©í ì믞ìì ì°ì°ìë ìëëë€). ê·žê²ë€ì ê³ì°í ê°ë¥ì±ìŽ ìë ê²ì ì¢ì§ë§ Ʞ볞 norm
ê° ë ìê²©ìŽ ììµëë€. ë°ê²¬í ì ìë ëììŽ ìë í©ëŠ¬ì ìŽê³ ê°ëšíë©° ì 묞ìíë Ʞ볞ê°ì ìëë ì늬íšë³Žë€ ë«ìµëë€(ì¬ì©ìê° ì늬í ìŒì íê³ ì¶ë€ë©Ž ëª
ìì ìŒë¡ íëë¡ íììì€).ë°ëŒì @stevengj ì +1
ì, ìŽ ë³ê²œì ìííë©Ž ì 곌 ë žëŠë§ íìíë€ê³ ìê°í©ëë€(ì§êžì 몚ë ì°šìì ë°°ìŽ ëë ë°°ìŽì ëí ì¬ê· ì íŽëŠ¬ë ì°ì°ìŽì§ë§ ê·ë²ì ê²œì° norm(x,p)ë ë€ì곌 ê°ìŽ ì ìí©ëë€. p-norm) ë° opnormìŽ ììŒë©° ë ìŽì vecdot ëë vecnormìŽ ììµëë€.
norm/opnormì ëí ë "ì€ëŠ¬ì" ëìì norm
ê° opnormì ìííë 2D ë°°ìŽì ëíí ì ìë ì°ì°ì ì íì ê°ë ê²ìŒ ì ììµëë€. ìŽê²ì íší€ì§ ìì€ìì ìíí ì ììµëë€(ëª ê°ë ìŽë¯ž ì¡Žì¬íš)
norm(Operator(matrix))
opnorm(matrix)
륌 ì
ë ¥íê³ ì¶ìµëë€ âŠ
ëë ì¬êž° ë
윩 ê°€ë¬ëŠ¬ìì ì°šì벚ì ë€ê³ ìŽê²ìŽ ê°ê³ ìë ê³³ìŽ ë§ìì ë ë€ê³ ë§í ê²ì
ëë€ vecnorm
ì vecdot
ë íì ì 륌 ꎎë¡íìµëë€. íì ëìê² ìë¹í ì 묞íë ê²ì²ëŒ 볎ìë ì°ì°ì ë
žëŠì ëª
ìì ìŒë¡ ì구íë ê²ìŽ íšì¬ ë¹ ë¥Žê³ ê³ì°íêž° ì¬ìŽ ë
žëŠ(ì: Frobenius ë
žëŠ)ì ì구íë ê²ë³Žë€ íšì¬ 걎ì íŽ ë³Žì
ëë€. opnorm
륌 ìì±íë ê²ì ìëì ìŒë¡ ì 묞íë ì°ì°ì ê·ë²ì ì구íë íë¥í ìží°íìŽì€ì²ëŒ 볎ì
ëë€.
ëí dot
ì inner
륌 믞ë¬í ì°šìŽë¡ 구ë¶íë©Ž íŒë곌 ì€ì©ìŽ ë§ì°í ì ìë€ê³ ìê°í©ëë€. ë êž°ë¥ìŽ 몚ë ìíë ëë¡ ìíëê³ ê·ž ì€ íëê° ë ì¬ìž ë ìŽë€ êž°ë¥ì ì¬ì©íŽìŒ íëì§ ì¬ì©ììê² ê°ìíë ê²ì ì ìëíì§ ìë 겜í¥ìŽ ììµëë€. ëŽ ìžìì ì§ì í ëŽë¶ ì í âšu,vâ©
ìŽ ì€ì ë¡ ì¡Žì¬í ë sum(x*y for (x,y) in zip(u,v))
ê° ì€ì ë¡ ìíë ê²ìŽ ì ë€ëŠ ìœëìì ìëì ìŒë¡ ë묌ë€ë ê²ì
ëë€. ê·žê²ìŽ ì ë§ë¡ ìíë ê²ìŒ ë ê³ì°íêž° ìíŽ ìŽì ê°ì ê²ì ìì±íë ê²ìŽ ìë¹í ìœê³ ëª
ííê³ íšìšì ì
ëë€(Juliaê° ë°ë¡ ê·žë° ì¬ëìŽêž° ë묞ì
ëë€).
uâ
v
íšì dot
ëë inner
ížì¶í ì§ ì¬ë¶ë ìŽ ëªšë ê²ìì ê°ì¥ ë ì€ìí ë¶ë¶ì²ëŒ 볎ì
ëë€. ìì¬ê°ë€ìŽ ìŽë€ ì íë ì¬ììŒë¡ ë³Žì§ ìì ê²ìŽëŒê³ ëë íì í©ëë€. ìì¬ê°ë€ìŽ ì í êŽì¬ì ê°ì§ ê²ìŽëŒë ìê°ì íì€í ì첚ì
ëë€. íížìŒë¡ uâ
v
ì "ì§ì í ëŽì " ì믞륌 ì ì§íë ë° ëìíë€ë©Ž ì, inner
ê° ë ì íí ìí ì©ìŽì
ëë€. ë°ë©Žì íŽë¹ íšì ìŽëŠìŽ ìë êµ¬ë¬žìŽ ìë ê²œì° ìŽëŠìŽ 구묞곌 ìŒì¹í ë ì¬ì©ì륌 ë íŒëìí€ë 겜í¥ìŽ ììµëë€. ì¬êž°ìì 구묞ì ì ì ì¬ì©íêž° ë묞ì 겜íì ìŽ ìì
ì ì² ì륌 dot
ë¡ ì§ìí©ëë€. const dot = inner
륌 ì ìíê³ ë ë€ ëŽë³ŽëŽë ê²ìŽ í©ëŠ¬ì ìž ê²œì°ìŒ ì ììµëë€. ê·žë° ë€ì ì¬ëë€ì ëìŒí ìŽëŠìŽë¯ë¡ ìíë ìŽëŠì ì¬ì©íê±°ë íì¥í ì ììµëë€. ëêµ°ê°ê° ë ìŽëŠ ì€ íë륌 ë€ë¥ž ìŽëŠìŒë¡ ì¬ì©íë €ë ê²œì° ë€ë¥ž ìŽëŠì Ʞ볞 ìë¯žë¡ ê³ì ì¬ì©í ì ììµëë€. ë¬Œë¡ ìŽë ê² íë©Ž ëìŒí íšìì ëíŽ ìž ê°ì ëŽë³Žëž ìŽëŠ( dot
, inner
ë° â
)ìŽ ë§ë€ìŽì§ëë€. ìŽë ìœê° 곌ëíŽ ë³Žì
ëë€.
â
êž°ížë¥Œ ì ê±°íê±°ë <u,v>
ë¡ ë첎íë ìµì
ì
ëê¹?
ìœë©íž:
<u,v> * M * x
ë
u â
v * M * x
<u,v>
구묞ì ì°êŽì ì믞í©ëë€. 뚌ì u
ë° v
ì ëíŽ ìì
í ë€ì ëëšžì§ ííììŽ ë°ëŠ
ëë€.
ì¬ì©ìê° <u,v>
륌 ì
ë ¥íë €ê³ ë
žë ¥íë€ë©Ž ê·žê° ëšìí sum(x[i]*y[i])
륌 ìŒëì ëìì ê°ë¥ì±ì ê±°ì ììµëë€. â
êž°ížë ëìŒë¡ 걎ë ë°êž° ìœê³ ë€ë¥ž ë§ì ìë¯žê° ììµëë€. í¹í, ì í ëìíìì íë F ìì ë²¡í° ê³µê° Vì ëíŽ ì€ì¹ŒëŒ α â F
ì ë²¡í° v â V
ì ê³±ì ë€ìí êµê³Œììì α â
v
ë¡ íìë©ëë€.
â
륌 ì ê±°íê±°ë ë°êŸžë©Ž ì¬ë¬ ìŽëŠì ëŽë³ŽëŽë 묞ì ë ì ê±°ë©ëë€. ìŒë° ëŽë¶ ì íì ëíŽ inner
ë° <,>
ëŽë³ŽëŽìŒ íë©°, ë°ë³µ ê°ë¥í í©ê³ ì믞 첎ê³ì ìŒì¹íë ë°°ìŽì ëí Ʞ볞 구íìŽ ììµëë€.
íë Fì ëí ë²¡í° ê³µê° Vì ëíŽ ììì ì€ëª
í ê²ì²ëŒ ì€ì¹ŒëŒ ë ë²¡í° ê³±ì ì ìíŽìŒ íë ê²œì° â
íêž°ë²ì ì ìí ì ììµëë€. ê·žë° ë€ì ë²¡í° ê³µê°ì ë©ì§ 짧ì 구묞ìŒë¡ ìì í ì ìëê³ <u,v>
륌 ì¶ê°ë¡ ì ìíì¬ Hilbert ê³µê°ìŒë¡ íì¥í ì ììµëë€.
<u,v>
구묞ì ì¬ì©í ì ììµëë€. ì°ëŠ¬ê° ì¬ì©í ì ìë 구묞ì âšu,vâ©
ì
ëë€. ì ëìœë ëêŽíž, ë³Žë€ ìê±°ë íŒ êž°íž, <
ë° >
ì 죌ìíììì€. ëí ëŽì ëë ëŽì ì ëí 구묞ìŒë¡ u'v
ê° ììµëë€. (ìŽë 쪜ìžì§ë ëªšë¥Žê² ì§ë§...)
ë€, ì£ì¡í©ëë€. ì ëìœë ë²ì ì
ëë€. ë§€ì° ëª
ííê² ìœì ì ììµëë€. ëí ì¬ë¬ ìŽëŠìŒë¡ ìŽ ë¬žì 륌 íŽê²°íê³ ë€ë¥ž ì©ëë¡ â
륌 묎ë£ë¡ ì¬ì©í ì ììµëë€.
ë€ë¥ž ì©ëë¡ â
륌 ì¬ì©íê³ ì¶ì§ ìë€ê³ ìê°í©ëë€. íŒëì€ë¬ìž ê² ê°ìµëë€.
ë€ì곌 ê°ì ìœë륌 ìì±í ì ìë€ë©Ž ìŒë§ë ì¢ìê¹ ììíŽë³Žììì€.
âšÎ± â
u, vâ© + âšÎ² â
w, zâ©
ì¶ì 벡í°(ëë ì í) u,v,w,z â V
ë° ì€ì¹ŒëŒ α, β â F
.
u'v
ë íë ¬ìŽ ìë 1ì°šì ë°°ìŽì ëíŽìë§ ëŽì (ë° ê³µì¡ ê·ì¹ì ë°ë¥Žë ê²œì° ëŽì )ì
ëë€. (ìŽë ìŽë¯ž íŽë¹ 겜ì°ì ëí ê°ê²°í íêž°ë²ì ê°ì§ê³ ìêž° ë묞ì ì€ì ì ì 1d ë°°ìŽë¡ ì ííë ê²ìŽ 묎ì믞í ë ë€ë¥ž ìŽì ì
ëë€.)
Stefan, "ì íí ìíì ì©ìŽ"ë ë²ì£Œ ì€ë¥ì ëë€. ìíì ì íì±ì ì©ìŽ/íêž°ë²ì ì ì©ëë ê°ë ìŽ ìëëë€. ("ì íí"ì "êŽìµì ìž"ìŒë¡ ë첎íììì€. ê·žë¬ë ê±±ì ì ë ìêžíŽì§ëë€.)
ë ë§ì ì¬ì© ì¬ë¡: https://stackoverflow.com/questions/50408177/julia-calculate-an-inner-product-using-boolean-algebra
âš,â©
íêž°ë²ì ì¬ì©íë ë¶ìž ëŽë¶ ê³±ì ê³µì íì: https://arxiv.org/abs/0902.1290
ížì§: ì¢ ìŽì ëí ê³ ì ë§í¬
꺟ì êŽíž 구묞 ì ìì ëíŽ ìŽë»ê² ìê°íìëê¹? ì¬êž°ì ì êž°ë 묞ì ê° íŽê²°ë ê¹ì?
ê·žëì ë¹ì ì ì ìì ì íí 묎ìì ëê¹? ëëµ ìŽë ìµëë€.
dot
륌 inner
ë¡ ì§ì ì€ëšuâ
v
륌 âšu,vâ©
ë¡ ì§ì ì€ëšê·žë ë€ë©Ž dot
íšìì â
ì°ì°ìê° ììê¹ì?
ê·žê²ìŽ í©ëŠ¬ì ìŒë¡ ë°ëê² ìµëê¹?
íì ìŽ ëŠìŽ ì£ì¡í©ëë€. ìží°ë· ì¡ìžì€ê° ì íë íìì ì°žì ì€ì ëë€.
ê·žëŠ¬ê³ ëª íì±ê³Œ ìì ì±ì ìíŽ ì¬êž°ì ë°ë ì ìì 묎ìì ëê¹? ì묎ê²ëíì§ ë§ìžì?
ì ìì ëì± ëª íí íêž° ìíŽ ìë¯žë¡ ì ë³íê° ìë°ë©ëë€: ìŒë°íë ëŽë¶ ì í.
죌ì: ì°ëŠ¬ë ìŽì 0.7-ìíë¡ ë§ë€ì§ ìì ì€ì ìíìŽ ìë ì§ì ê¹ì§ ìŽì ëíŽ ë Œìíìµëë€. ê·žë ë€ê³ íŽì ìí ìŽíì ë³ê²œí ì ìë€ë ì믞ë ìëì§ë§, ê·ž ìŽíìë ë³ê²œíꞰ륌 íšì¬ ë êºŒëŠ¬ê² ë©ëë€.
ì, ì€ë ì ì PRì ì ì¶í ì ìë êž°ì ìŽ ìììŒë©Ž í©ëë€. ê·žê²ìŽ ë§€ì° ì€ìí êž°ë¥ìŽëŒê³ ìê°íì§ë§ ê·žê²ì ì€ííë ê²ì ì ë¥ë ¥ ë°ì ëë€.
ì°ì°ì 구묞 ì§ë¬žì í ìžíëëŒë ì믞 ê°ë
ì ê° ìžíž(íì¬ dot
ë° vecdot
ë° íì¬ norm
ë° vecnorm
).
dot
ìž¡ë©Žì ê²œì° ìµì
ì ì 첎 ê³µê°(ë€ì ì°ì°ì í ìž)ì ë€ì곌 ê°ìµëë€.
I. 0.7ì ëìì íì€ depwarn ììŽ ëŽë¶ ì íìŒë¡ ë³ê²œíì¬ ë°°ìŽ ë²¡í°ìì dot
륌 ìëìŒë¡ ì€ëší©ëë€(ëììŽ ë³ê²œëê³ ììì ê²œê³ í ì ìì). 0.7ììë vecdot
륌 dot
ë¡ ì¬ì© ì€ëší©ëë€.
â
¡. 0.7ìì inner ì ëí 몚ë ì
ë ¥ìì inner
vecdot
륌 ë ìŽì ì¬ì©íì§ ììµëë€.
III. 0.7ìì ë°°ìŽì 벡í°ì ëí dot
ì ìì ëíŽ, ë€ë¥ž ì
ë ¥ì ëíŽ dot
ë° vecdot
ì ëí 몚ë ì
ë ¥ì ëíŽ inner
륌 ë ìŽì ì¬ì©íì§ ììµëë€.
IV. 0.7ììë ëŽë³ŽëŽì§ ìì íšì ëë íŽë¹ ì ìì ëí ë°°ìŽ ë²¡í°ì dot
ë° vecdot
ë° $#$ dot
vecdot
ì¬ì©ì ì€ëší©ëë€. 1.0ììë ëŽì ì믞 첎ê³ê° ìë ë°°ìŽ ë²¡í°ì dot
륌 ì¶ê°í©ëë€.
íì€ ìž¡ë©Žì ê²œì° ëšìŒ 겜ë¡ì ëí í©ìê° ììµëë€(0.7ììë íë ¬ìì norm
륌 opnorm
ë¡ ì¬ì©íì§ ìê³ vecnorm
ìì innernorm
ë¡ ì¬ì©íì§ ìì ì ìì) ; 1.0ìì , íì¬ vecnorm
ì믞 첎ê³ê° ìë íë ¬ì norm
ì¶ê°), ê·žë¬ë 1.0ìì ì¶ê° ìŽëŠë ìì±ë©ëë€( vecnorm
ëë innernorm
). ìŽë¥Œ ë°©ì§íë ë°©ë²ì 0.7ìì vecnorm
ì ì ì ëë ëŽë³Žëž ìŽëŠìŽ ìë Base.vecnorm
ì ê°ì ëŽë³ŽëŽì§ ìì íšì륌 ë ìŽì ì¬ì©íì§ ìë ê²ì
ëë€.
...ì ìê°ìë. ëŽê° ìŽë¯ž ììë ê²ë³Žë€ ìŒì ë í늿íê² ë§ë€ì§ ìꞰ륌 ë°ëëë€.
ìœëë² ìŽì€ì ìµìí ì¬ëìŽ ë³ê²œ ì¬íì ëí PRì ì ì¶í ì ììµëê¹?
몚ë ì¬ëìŽ ëìíë ê²ìŒë¡ 볎ìŽë ìŒë°ì ìž í목ì ë¶ëŠ¬íê³ ìµìí ìë£í ì ììµëê¹? dot
ë inner
ë¹ížë íšì¬ ë ë
Œìì ì¬ì§ê° ìì§ë§ ê·žë ì§ ìì ë¶ë¶ì ë°©íŽíì§ ìëë¡ í©ìë€.
@StefanKarpinski , ê·žê²ë€ì ë€ì ê²°í©ëìŽ ììì ì ìíììì€. ëŽì (ëŽë¶)곌 íì€ìŽ 몚ë ìë ì íì ê²œì° ìŒêŽì±ìŽ ììŽìŒ í©ëë€.
ì¢ì, ëë ìŽê²ìŽ ìŽë€ ë°©í¥ìŒë¡ íë¬ê°ë ìêŽíì§ ìëë€. ìì ì íë ì¬ëìŽ ê²°ì í©ëë€.
ëë vecdot
륌 ì¬ê·ì ìŒë¡ ë§ë€ìŽ ì§ì í ëŽë¶ ì í(ë° íŽë¹ íì€ìŒë¡ vecnorm
)ìŒë¡ ëìíëë¡ PR( #25093 )ì íìµëë€. ìŽê²ì 믞ëì dot
ë° norm
ìŽ ìŽë»ê² ì게ëì§ì ëí ì¶ë°ì ìŒë¡ ì ì©í ì ììµëë€. ë¶ííë, git êž°ì ìŽ ë¶ì¡±íì¬ íŽë¹ PRì ë§ì³ë²ë žê³ ìë¡ìŽ ë°ë³µ êµ¬ë¬žìŽ ìë£ë íì ë€ì ëìì¬ ê³íì ìžì°ê³ ë«ììµëë€.
ê·žë¬ë ë©°ì¹ ì ì ë ë²ì§žë¡ ìë¹ ê° ë ê²ì íì¬ ìºëŠ°ëì "ì¬ê° ìê°"ìŽ ìë€ë ê²ì ì믞í©ëë€.
ë©°ì¹ ì ì ë ë²ì§žë¡ ìë¹ ê° ë
ì¶ííŽ ì£Œí ! ð
ì, ì¶íí©ëë€!
dot
ì inner
ê° ëªšë ìë€ë ììŽëìŽì ëíŽ í©ì ê° ìŽë£šìŽì§ ê² ê°ìµëë€. ì¬êž°ì:
inner
ë ì§ì í ì¬ê· ëŽë¶ ê³±ì
ëë€.dot = dot(x,y) = sum(x[i]'*y[i] for i = 1:length(x))
ê²°í© ì¬ë¶, ë°ëŒì Vector{<:Number}
ëë Vector{<:Real}
ì ê²œì° dot
ì 겹칩ëë€.ì êŽíì¬:
ë§ì ì¬ëë€ì ëŽë¶ë¥Œ ì믞í ë ì ì ìì±íê³ ëë¶ë¶ì ê²œì° ì ìëíì§ë§ íë ¬ ë°°ìŽìŽ ì ë¬ëë©Ž ìœëìì ìêž°ì¹ ìì ìì ì ìíí©ëë€.
ëë ê·žê²ìŽ 묞ì ê° ë ê²ìŽëŒê³ ë¯¿ì§ ìëë€. ìŽê²ì ìë¹í ë묞 ìì ìŽêž° ë묞ì ì¬ëë€ìŽ ìµìí ìì ì ìííê³ ë¬žì륌 ìŽíŽë³Žêž° ìíŽ ìëí ê²ìŒë¡ êž°ëí©ëë€.
dot
ì ì믞ë ëë¶ë¶ì ê²œì° ë³ê²œëì§ ìêž° ë묞ì ìì ëŽì©ì í° ë³íê° ë ê²ìŽë©° ê·žë€ì§ ë°©íŽê° ëì§ ìì ê²ìŽëŒê³ ìê°í©ëë€.
dot
ë°inner
ë ë€ ê°ì§ê³ ìë€ë ììŽëìŽì ëíŽ í©ìê° ìŽë£šìŽì§ ê² ê°ìµëë€.
ë°ëë¡ https://github.com/JuliaLang/julia/issues/25565#issuecomment -390069503ì í ë¡ ììë https://githubì ëì ìë ê²ì²ëŒ ë ì€ íëê° ìë ë ì€ íë륌 ì¬ì©íë ê²ì ì ížíë ê²ìŒë¡ 볎ì ëë€. com/JuliaLang/julia/issues/25565#issuecomment -390388230 ë° ë°ììŒë¡ ì ì§ìë©ëë€.
ìë§ë inner
(ëí dot
)ë ì¬ê· ëŽë¶/ì /ì€ì¹ŒëŒ ê³±ìŽìŽìŒ íê³ ìŽì ëìì dotc(x,y) = sum(x[i]' * y[i] for i in eachindex(x))
ë° dotu(x,y) = sum(transpose(x[i]) * y[i] for i in eachindex(x))
ì ê°ì íšììì 구íë ì ììµëë€. ? dotu
ë° dotc
ìŽëŠì íŽë¹ BLAS ìŽëŠê³Œ ìŒì¹í©ëë€.
(ëë âšu,vâ©, âšu|vâ©, ëë (u,v)ê° ììì Hilbert ê³µê°ì ëí ëŽì ì ëí ë ìŒë°ì ìž íêž°ë²ìŽëŒë ë° ëìí©ëë€. ê·žê²ë€ì ì ê° ìŒë°ì ìŒë¡ ì¬ì©íë íêž°ë²ì ëë€. ì ëìœë ëêŽížë¥Œ íšì/맀í¬ë¡ ížì¶ë¡ 구묞 ë¶ìíë ê²ì ëí ë Œìê° ìììµëë€(ì: #8934 ë° #8892). ê·žë¬ë ì묎ë°ë ê°ì§ ìììŒë©° ìŽê²ì 곧 ë³ê²œë ê² ê°ì§ ììµëë€.)
@stevengj , ìŽ ëšëœì ìŽì 죌ìì ì§ì ì¶ê°íì ë âšu,vâ©
구묞ì ìžìŽìì 구ííêž° ìŽë µë€ë ì믞ì
ëê¹?
ìŽ êž°ë¥ìŽ Julia v1.0ì í¬íšë ê°ë¥ì±ìŽ ììµëê¹? ëë ìŒë°ì ìž ëŽë¶ ì íì ê°ë ì ìì¡Žíë ë§ì ììŽëìŽì íší€ì§ë¥Œ ê°ì§ê³ ììµëë€. ëŽ êž°ëì¹ë¥Œ ë®ì¶°ìŒ íëì§ ìë €ì£Œìžì. ì§ìì ìž ì늌 ì£ì¡í©ëë€.
#27401 못뎀�
@jebej ê°ì¬í©ëë€ ê·žëŠ¬ê³ ìì¥ì죌ì @ranocha ê°ì¬í©ëë€ :heart:
ìŽ ëšëœì ìŽì 죌ìì ì§ì ì¶ê°íì ë âšu,vâ© êµ¬ë¬žìŽ ìžìŽìì 구ííêž° ìŽë µë€ë ê²ì ì믞í©ëê¹?
íìì ì¶ê°íë ê²ìŽ êž°ì ì ìŒë¡ ìŽë µì§ë ìì§ë§ ìžìŽìì ì¬ì©ì ì§ì êŽížë¥Œ ëíëŽë ë°©ë²(ë° ì¬ë¶)ì ëí í©ì륌 ëì¶íë ê²ìŽ ìŽë €ìŽ ê²ìŒë¡ ì ìŠëììµëë€. #8934ìì í ë¡ ì ì°žì¡°íììì€. ìŽ í ë¡ ì 4ë ì ì묎ë°ë ììê³ ê·ž ìŽíë¡ ë¶ííì§ ìììµëë€. (ë€ë¥ž ë¶ìŒìì ì¬ëë€ìŽ ë§ì ë€ë¥ž ê²ì ëíŽ ëìŒí ëêŽížë¥Œ ì¬ì©íë€ë ì¬ì€ì ì¶ê°í©ëë€. ì륌 ë€ìŽ âšuâ©ë íµê³ 묌늬íì ììëž íê· ì ì¬ì©ë©ëë€.) #8892ìì ì êž°ë ë ë€ë¥ž 묞ì ë ë€ìí ì ëìœëì ìê°ì ì ì¬ì±ì ëë€. êŽíž.
@stevengj ê°ì¬í©ëë€. ì€ëª ì ê°ì¬ë늜ëë€. íší€ì§ ì ë°ì ê±žì³ íì€íë ìŒë° ëŽë¶ ì íì ê°ê² ëìŽ ë§€ì° êž°ì©ëë€. :100: 꺟ì êŽíž íêž°ë²ì í¥í ë€ë¥ž ëŠŽëŠ¬ì€ ì£Œêž°ìì ë¹ë ì ììµëë€. ì€ìíì§ë ìì§ë§ ì°ëŠ¬ ì¶í묌ì ìë ìíì²ëŒ 묞ì ê·žëë¡ ìœë륌 ìì±í ì ìë€ë ê²ì ë§€ì° ížëŠ¬í©ëë€.
âšargs...â©
ê° anglebrackets
ì°ì°ì륌 ížì¶íêž° ìí ì íší êµ¬ë¬žìž ê²œì°(ìŽ êµ¬ë¬žìì ížì¶íë íšì륌 ížì¶íë ê²ì ì€ì ë¡ ì ë¡ê° ìêž° ë묞ì ë€ì ê¹ë€ë¡ìµëë€), ì¬ëë€ì ë€ì곌 ê°ìŽ í ì ììµëë€. 구묞ì ëíŽ ìíë ì믞륌 ì ííììì€.
@StefanKarpinski , #8934ì 죌ì¥ì 맀í¬ë¡ì¬ìŒ íë€ë ê²ìŽììµëë€. ëë ì°ëŠ¬ê° í©ìì ëë¬íë€ê³ ìê°íì§ ììµëë€.
(Baseìì anglebrackets(a,b)
ê° inner(a,b)
륌 ì믞íë€ê³ ê²°ì íë©Ž ìŽë¯ž ê²°ì ìŽ ëŽë €ì¡êž° ë묞ì ì¬ëë€ìŽ "ìíë ìë¯žë¡ ì í"íë ê²ì ë°©íŽí ê²ì
ëë€.
ë¬Œë¡ ëì°í ì íì ìëì§ë§ 구묞 ë¶ìëë í Baseìì ìŽ ì믞륌 í ë¹í íìê° ìì ìë ììµëë€.)
ëë ê·ž í ë¡ ì ìžë¶ ì¬íì êž°ìµíì§ ëª»íì§ë§ 맀í¬ë¡ë¥Œ ë§ëë ê²ì ë¶ëª í ëìê² ëì ìê°ì²ëŒ 볎ì ëë€.
#27401 ìŽë ì íì ì§ì§íê² ìê°íê³ ìë€ê³ ìê°í ì ììµëë€.
ì íµì ìŒë¡ ìŽìë êŽë š PRìŽ ë³í©ë ëë§ ë«íëë€...
ë¬Œë¡ , ì°ëŠ¬ë ê·žê²ì ìŽìŽ ë ì ììµëë€. ë¶ë¥ ë ìŽëžìì ìì ê³ ì¶ìì ë¿ì ëë€.
#27401ìŽ ì§êž ë³í©ëììŒë¯ë¡ ë«íìŒ í©ëê¹?
ê°ì¥ ì ì©í ëêž
#27401ìŽ ì§êž ë³í©ëììŒë¯ë¡ ë«íìŒ í©ëê¹?