(কেন) ওভারফিটেড মডেলগুলিতে বড় সহগ রয়েছে?


33

আমি কল্পনা করতে পারি যে একটি চলকটির উপর বৃহত্তর গুণফল, মডেলটির সেই মাত্রায় "সুইং" করার ক্ষমতা আরও বেশি, শব্দের সাথে মানিয়ে যাওয়ার আরও একটি সুযোগ সরবরাহ করে। যদিও আমি মনে করি যে মডেল এবং বড় সহগের মধ্যে পার্থক্য সম্পর্কে আমি যুক্তিসঙ্গত ধারণা পেয়েছি, তবে কেন তারা ওভারফিট মডেলগুলিতে ঘটে তা সম্পর্কে আমার তেমন ভাল ধারণা নেই । এটি কি ভুল বলা যায় যে তারা ওভারফিটিংয়ের লক্ষণ এবং কোয়ালিটি সংকোচনের বিষয়টি মডেলটির বৈকল্পিকতা হ্রাস করার জন্য আরও কৌশল? গুণাগুলি সঙ্কুচিত হওয়ার মাধ্যমে নিয়মিতকরণটি এই নীতিটিতে কাজ করে বলে মনে হচ্ছে যে বৃহত্তর গুণাগুণগুলি একটি অত্যুজ্জিত মডেলের ফলাফল, তবে সম্ভবত আমি কৌশলটির পিছনে অনুপ্রেরণার ভুল ব্যাখ্যা করছি।

আমার অন্তর্নিহিততা যে বৃহত সহগগুলি সাধারণত অত্যধিক মানসিকতার লক্ষণ হয় তা নিম্নলিখিত উদাহরণ থেকে আসে:

ধরা যাক আমরা পয়েন্টগুলি ফিট করতে চেয়েছিলাম যা সমস্ত এক্স-অক্ষে বসে। আমরা সহজেই এমন একটি বহুপদী তৈরি করতে পারি যার সমাধানগুলি এই বিষয়গুলি: । ধরা যাক আমাদের পয়েন্টগুলি । এই কৌশলটি সমস্ত সহগ>> = 10 দেয় (একটি সহগ ব্যতীত)। যেহেতু আমরা আরও পয়েন্ট যুক্ত করব (এবং এর ফলে বহুভুজের ডিগ্রি বৃদ্ধি পাবে) এই সহগের পরিমাণগুলি দ্রুত বাড়বে।f ( x ) = ( x - x 1 ) ( x - x 2 ) ( x - x n - 1 ) ( x - x n ) x = 1 , 2 , 3 , 4nf(x)=(xx1)(xx2)....(xxn1)(xxn)x=1,2,3,4

এই উদাহরণটি হ'ল আমি বর্তমানে উত্পন্ন মডেলগুলির "জটিলতার" সাথে মডেল সহগের আকারকে কীভাবে সংযুক্ত করছি, তবে আমি উদ্বিগ্ন যে এই ঘটনাটি বাস্তব-বিশ্বের আচরণের পরিচায়ক হওয়ার জন্য জীবাণুমুক্ত হবে। আমি ইচ্ছাকৃতভাবে একটি ওভারফিটেড মডেল তৈরি করেছি (চতুর্ভুজ স্যাম্পলিং মডেল থেকে উত্পন্ন ডেটাতে দশম ডিগ্রির বহুবর্ষীয় ওএলএস ফিট) এবং আমার মডেলটিতে বেশিরভাগ ছোট সহগগুলি দেখে অবাক হয়েছি:

set.seed(123)
xv = seq(-5,15,length.out=1e4)
x=sample(xv,20)
gen=function(v){v^2 + 7*rnorm(length(v))}
y=gen(x)
df = data.frame(x,y)

model = lm(y~poly(x,10,raw=T), data=df)
summary(abs(model$coefficients))
#     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
# 0.000001 0.003666 0.172400 1.469000 1.776000 5.957000


data.frame(sort(abs(model$coefficients)))
#                                   model.coefficients
# poly(x, 10, raw = T)10                  7.118668e-07
# poly(x, 10, raw = T)9                   3.816941e-05
# poly(x, 10, raw = T)8                   7.675023e-04
# poly(x, 10, raw = T)7                   6.565424e-03
# poly(x, 10, raw = T)6                   1.070573e-02
# poly(x, 10, raw = T)5                   1.723969e-01
# poly(x, 10, raw = T)3                   6.341401e-01
# poly(x, 10, raw = T)4                   8.007111e-01
# poly(x, 10, raw = T)1                   2.751109e+00
# poly(x, 10, raw = T)2                   5.830923e+00
# (Intercept)                             5.956870e+00

সম্ভবত এই উদাহরণটি থেকে দূরে যাওয়াটি হ'ল সহগের দুই তৃতীয়াংশ 1 এর চেয়ে কম, এবং অন্যান্য সহগের তুলনায় , তিনটি সহগ রয়েছে যা অস্বাভাবিকভাবে বড় (এবং এই সহগগুলির সাথে যুক্ত ভেরিয়েবলগুলিও সবচেয়ে ঘনিষ্ঠভাবে ঘটে থাকে সত্য নমুনা মডেল সম্পর্কিত)।

(এল 2) নিয়মিতকরণ কি কেবলমাত্র কোনও মডেলটির বৈকল্পিকতা হ্রাস করার জন্য এবং এর মাধ্যমে ভবিষ্যতের ডেটা আরও ভালভাবে ফিট করার জন্য বক্ররেখাকে "মসৃণ" করতে পারে, বা অতিরিক্ত মাপের মডেলগুলি বড় সহগগুলি প্রদর্শন করার ঝোঁকটি পর্যবেক্ষণ থেকে প্রাপ্ত একটি হিউরিস্টিকের সুবিধা গ্রহণ করছে? এটি কি একটি সঠিক বিবৃতি যা ওভারফিটেড মডেলগুলি বড় সহগগুলি প্রদর্শন করে? যদি তা হয় তবে কেউ কি ঘটনার পেছনের প্রক্রিয়াটি একটু ব্যাখ্যা করতে পারেন এবং / অথবা আমাকে কিছু সাহিত্যের দিকে পরিচালিত করতে পারেন?


4
"বৃহত্তর" সহগ বলতে আপনার অর্থ কী? সর্বোপরি, আমরা যদি কেবলমাত্র ইউনিটগুলিতে নির্ভর করি যেখানে আমরা নির্ভরশীল পরিবর্তনশীল প্রকাশ করি (যেমন পার্সেক থেকে ফেমটোমিটারে) আমরা গুণাগুণকে নির্বিচারে বড় বা ছোট করতে পারি।
হোবার

1
আমার এটির জন্য ভাল উত্তর নেই। আমার বোধগম্যতা ছিল যে "বড়" গুণাগুণকে আক্রমণ করা এল 2-নিয়মিতকরণের পিছনে একটি অনুপ্রেরণামূলক হিউরিস্টিক ছিল। কিন্তু কৃত্রিমভাবে সহগের পরিধি বাড়িয়ে তোলার জন্য এখন মডেলের বিভিন্ন পরিমাপের ক্ষতিপূরণ দিতে নিয়মিতকরণ ধ্রুবক পরিবর্তন করা দরকার, তাই না? আমি মনে করি না যে এখানে "বৃহত" এর ধারণাটি যতটা অস্পষ্ট আপনি এটি তৈরি করছেন ঠিক ততটাই অস্পষ্ট, যদিও আমি এটি খুব ভালভাবে চিহ্নিত করতে পারি না।
ডেভিড মার্কস

@ ডেভিডমার্ক: আমি মনে করি না যে এল 2-নিয়ামকরণটি "বৃহত্তর" সহগের পরে চলে, তাই না? বরং এটি এমন গুণাগুণগুলিকে ধাক্কা দেয় যা সম্ভবত তুলনামূলকভাবে শূন্যের চেয়ে বড় ছিল না, এক অর্থে আপনি দুজনের মধ্যে কোনও সমঝোতা খোঁজার পরিবর্তে আপনাকে বেছে নিতে বাধ্য করেন।
ওয়েইন

@ ওয়েইন আহ, আমি মনে করি এটি আমার পেছনের দিকে ছিল। আমি ভেবেছিলাম যে এটি বৃহত্তর সহগকে সঙ্কুচিত করে দেয় বা আনুপাতিকভাবে সমস্ত সহগুণ সঙ্কুচিত করে। এটি যদি L2- নিয়মিতকরণটি মডেলের বাইরে ছোট সহগের সাথে ভেরিয়েবলগুলিকে ঠেলে দেয় তবে এটি আরও অর্থবোধ করবে।
ডেভিড মার্কস

1
8 টি সম্পাদনার পরে, আমি মনে করি আমার উত্তর আমার কাছে আছে। Sheesh।
হংক ওওয়ে

উত্তর:


15

নিয়মিতকরণ প্রসঙ্গে একটি "বৃহত্তর" সহগের অর্থ হ'ল যদি একটি নির্দিষ্ট মডেলের স্পেসিফিকেশন ব্যবহার করা হত তবে অনুমানের পরিমাণটি তার চেয়ে বেশি হবে । এটি তথ্য থেকে কেবল অনুমানগুলিই নয়, মডেলের স্পেসিফিকেশন অর্জনের প্রভাব।

স্টেওয়াইজ রিগ্রেশন জাতীয় পদ্ধতি প্রদত্ত ভেরিয়েবলের জন্য কী করবে তা বিবেচনা করুন। মানটির ত্রুটির তুলনায় এর সহগের অনুমান যদি সামান্য হয় তবে এটি মডেল থেকে বাদ পড়বে। এটি হতে পারে কারণ সত্যিকারের মানটি আসলেই ছোট, বা কেবল এলোমেলো ত্রুটির কারণে (বা দুটিটির সংমিশ্রণ)। যদি এটি বাদ পড়ে যায় তবে আমরা আর এটিতে মনোযোগ দেব না। অন্যদিকে, যদি প্রাক্কলনটি এর স্ট্যান্ডার্ড ত্রুটির সাথে তুলনামূলক বড় হয় তবে এটি ধরে রাখা হবে। ভারসাম্যহীনতার দিকে লক্ষ্য করুন: আমাদের চূড়ান্ত মডেলটি পরিবর্তনশীলটিকে প্রত্যাখ্যান করবে যখন গুণমানের প্রাক্কলনটি ছোট হয়, তবে অনুমানটি বড় হলে আমরা এটি রাখব। সুতরাং আমরা সম্ভবত এর মানকে অতিরঞ্জিত করব।

আরেকটি উপায় রাখুন, ওভারফিটিংয়ের মানে কী আপনি প্রতিক্রিয়াতে প্রদত্ত ভবিষ্যদ্বাণীকারীদের একটি সেটকে প্রভাবিত করে দেখছেন। তবে আপনি যে প্রভাবটি বাড়িয়ে তুলতে পারেন তার একমাত্র উপায় হ'ল যদি অনুমানের সহগ খুব বেশি হয় (এবং বিপরীতভাবে, আপনার বাদ দেওয়া ভবিষ্যদ্বাণীকারীদের জন্য অনুমান খুব ছোট)।

আপনার যা করা উচিত তা হ'ল আপনার পরীক্ষায় একটি পরিবর্তনীয় নির্বাচন প্রক্রিয়া অন্তর্ভুক্ত করা, উদাহরণস্বরূপ স্টেপওয়াইজ রিগ্রেশন এর মাধ্যমে step। তারপরে বিভিন্ন এলোমেলো নমুনায় একাধিকবার আপনার পরীক্ষার পুনরাবৃত্তি করুন এবং অনুমানগুলি সংরক্ষণ করুন। পরিবর্তনীয় নির্বাচন ব্যবহার না করার সাথে তুলনা করার সময় আপনাকে খুঁজে পেতে হবে যে সহগের থেকে of সমস্ত অনুমান পদ্ধতিগতভাবে খুব বড়। নিয়মিতকরণ পদ্ধতিগুলি এই সমস্যাটিকে সংশোধন বা প্রশমিত করার লক্ষ্যে।β 10β3β10

আমি যা বলছি তার একটি উদাহরণ এখানে।

repeat.exp <- function(M)
{
    x <- seq(-2, 2, len=25)
    px <- poly(x, 10)
    colnames(px) <- paste0("x", 1:10)
    out <- setNames(rep(NA, 11), c("(Intercept)", colnames(px)))
    sapply(1:M, function(...) {
        y <- x^2 + rnorm(N, s=2)
        d <- data.frame(px, y)
        b <- coef(step(lm(y ~ x1, data=d), y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10, trace=0))
        out[names(b)] <- b
        out
    })
}

set.seed(53520)
z <- repeat.exp(M=1000)

# some time later...
rowMeans(abs(z), na.rm=TRUE)

(Intercept)          x1          x2          x3          x4          x5          x6          x7          x8          x9         x10 
   1.453553    3.162100    6.533642    3.108974    3.204341    3.131208    3.118276    3.217231    3.293691    3.149520    3.073062 

আপনি যখন ভেরিয়েবল নির্বাচন ব্যবহার করবেন না তখন তার সাথে বৈষম্য করুন এবং সবকিছু অন্ধভাবে ফিট করুন। থেকে অনুমানের মধ্যে এখনও কিছু ত্রুটি রয়েছে , গড় বিচ্যুতিটি আরও ছোট।β 10β3β10

repeat.exp.base <- function(M)
{
    x <- seq(-2, 2, len=25)
    px <- poly(x, 10)
    colnames(px) <- paste0("x", 1:10)
    out <- setNames(rep(NA, 11), c("(Intercept)", colnames(px)))
    sapply(1:M, function(...) {
        y <- x^2 + rnorm(N, s=2)
        d <- data.frame(px, y)
        b <- coef(lm(y ~ ., data=d))
        out[names(b)] <- b
        out
    })
}

set.seed(53520)
z2 <- repeat.exp.base(M=1000)

rowMeans(abs(z2))
(Intercept)          x1          x2          x3          x4          x5          x6          x7          x8          x9         x10 
   1.453553    1.676066    6.400629    1.589061    1.648441    1.584861    1.611819    1.607720    1.656267    1.583362    1.556168 

এছাড়াও, এল 1 এবং এল 2 উভয়ই নিয়মিতকরণের অন্তর্ভুক্ত ধারণাটি তৈরি করে যে আপনার সমস্ত ভেরিয়েবল এবং সেইজন্য পরিমাপের একই ইউনিটে রয়েছে, ie একক পরিবর্তন একক পরিবর্তনের সমতুল্য । সুতরাং এই কৌশলগুলির কোনও প্রয়োগের আগে আপনার ভেরিয়েবলকে মানক করার স্বাভাবিক পদক্ষেপ।β 2β1β2


আমি আপনার পরিবর্তিত উদাহরণ দিয়ে কিছুটা বিভ্রান্ত হয়ে পড়েছি। আপনি বলেছিলেন যে "পরিবর্তনশীল নির্বাচন ব্যবহার না করার সাথে তুলনা করার সময়, আপনার সহগের -3 থেকে 1010 এর সমস্ত অনুমান পদ্ধতিগতভাবে খুব বড়," তবে এটি প্রদর্শিত হয় যে আপনি stepদ্বিতীয় পরীক্ষার চেয়ে আপনার প্রথম পরীক্ষায় (সহ ) আরও বড় মান পেয়েছেন ("অন্ধভাবে" মানানসই মান)। আপনি যা পরামর্শ দিয়েছিলেন তা কি এর বিপরীতে নয়?
ডেভিড মার্কস

এছাড়াও, আপনি এবং অন্যরা এখানে পরামর্শ দিয়েছেন যে আমার উদাহরণে আমার চলকগুলি মানক করা উচিত। আমি যুক্তিটি দেখছি, তবে আমি এটি করার ভাল উপায়টি জানি না। এক্স এর প্রতিটি পাওয়ারের জন্য কলামগুলি অন্তর্ভুক্ত করতে এবং সেই মানগুলিকে মানিক করার জন্য আমার নমুনা ডেটাটি বাড়ানো উচিত? বা আমি যেখানে কল করি সেখানে আমার মডেল সূত্রে ভেরিয়েবলগুলি সরাসরি মানক করার কোনও উপায় আছে poly(আমি অনুমান করছি না)?
ডেভিড মার্কস

? পদক্ষেপের ব্যবহার না করার তুলনায় ধাপে ধাপে ব্যবহার করার সময় আপনি বৃহত্তর পরম বিচ্যুতি পান। আপনি কী জিজ্ঞাসা করছেন তা নিশ্চিত নন। মানীকরণের ক্ষেত্রে: এটি পোস্ট করা যেমন অপ্রয়োজনীয়, তেমনি আপনি পোস্ট হিসাবে এটি করেন, অর্থাত্ ধাপে এবং পদক্ষেপবিহীন পদ্ধতির মধ্যে একটি তুলনা করা। প্রতিটি ভেরিয়েবলের সাথে একটি চিকিত্সা থেকে অন্য ভেরিয়েবলের চেয়ে তুলনা করা হচ্ছে।
হংক ওই

6

আপনার বিশদটি না দেখে একটি খুব সাধারণ উত্তর: আপনি যখন অত্যধিক মানানসই হন তখন প্যারামিটারের অনুমানকারীগুলি বড় আকারের প্রবণতা লাভ করে এবং বৃহত ভেরিয়েন্সগুলির সাথে বড় মানগুলি আপনার প্রত্যাশা করা উচিত ঠিক তাই!


যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে এটি ব্যাখ্যা করবে যে মডেলটি কেন "বৃহত্তর" মানগুলির পূর্বাভাস দেয়, কেন মডেলটি "বড়" সহগের সমন্বিত হবে না।
ডেভিড মার্কস

না, এটা ভুল! কমপক্ষে কয়েকটি পৃথক সহগের অনুমানকারীগুলির বৃহত বৈকল্পিকতা থাকবে, সুতরাং সেইগুলি সহগের আনুমানিক মানগুলি বড় হতে থাকে। (আমাদের মধ্যে, অত্যধিক মানানসই হলেও কিছু সহগ স্থিতিশীল হতে পারে তবে সবগুলিই নয়)। এছাড়াও, পূর্বাভাসের নিরপেক্ষতা সম্পত্তি রাখতে, স্বতঃগুণযোগ্য অনুমানকারীগুলির মধ্যে কিছু বড় নেতিবাচক সমবায়িকাগুলির ঝোঁক থাকবে।
কেজেটিল বি হালওয়ারসেন

1
যদিও এটি পুরোপুরি প্রশ্নের উত্তর দেয় না। যদি এটি কেবলমাত্র বৃহত বৈকল্পিকতার একটি সমস্যা ছিল তবে আপনি প্রায়শই বড় আকারে (অনানুষ্ঠানিকভাবে কথা বলছেন) হিসাবে ছোট অনুমান পাবেন। সমস্যাটি তখন যখন আমরা ছোট অনুমানগুলি ধরে নিই (তাদের স্ট্যান্ডের ত্রুটির তুলনায়) "গুরুত্বহীন" হয় এবং মডেলটি থেকে সেই ভেরিয়েবলগুলি ফেলে দেয়। ফলস্বরূপ, কেবলমাত্র অনুমানগুলিই বড় আকারের হবে।
হংক ওও

0

ডেভিড। আমি মনে করি আপনার উদাহরণ সহ সমস্যাটি হ'ল আপনি নিজের ডেটা (যেমন X ^ 10 >> এক্স) সাধারণ করেনি have

সুতরাং ডেভিড ঠিক আছে যে এটি বৃহত্তর সহগকে আরও সংকুচিত করে (যাতে আপনি অনেকগুলি ছোট সহগ সহ শেষ করতে পারেন, যদিও এল 1 নিয়মিতকরণ আপনাকে একটি বড় এবং বাকী শূন্য দিতে পারে)

সুতরাং মূলত এটি encapsulating হয় যে ছোট পরিবর্তনগুলির ছোট প্রভাব থাকতে হবে (এবং অবশ্যই আমরা কীভাবে ছোট ছোট - আপনার ডেটা সাধারণকরণ ইত্যাদি বিষয়ে ফিরে এসেছি)। তবে মূল বিষয়টি উচ্চ মাত্রায় রয়েছে, যেখানে পারস্পরিক সম্পর্ক কার্যকর হয়: কল্পনা করুন আপনার দুটি ভেরিয়েবল রয়েছে এক্স, ওয়াই যে খুব বেশি পারস্পরিক সম্পর্কযুক্ত (উভয়ই ভেরিয়েন্স 1 তে সাধারণীকরণ করা) তবে তাদের পার্থক্যটি ছোট = "শব্দ" হবে - সুতরাং বড় ওজনকে শাস্তি দেওয়া হবে আপনাকে এই গোলমাল থেকে ফিটিং প্রতিরোধ করুন (এবং y এবং x এর জন্য সহগুণগুলি প্রায় বাতিল করা খুব বড় হওয়া)।

উদাহরণটি এখনও কোনও রৈখিক সম্পর্কের জন্য রাখে (y = mx)

রিজ রিগ্রেশন সন্ধান করুন


1
ডেভিড আপনি x, x ^ 2, ..., x ^ n থেকে শূন্য গড় এবং স্ট্যান্ডার্ড বিচ্যুতি 1 এর সমস্ত ভেরিয়েবলকে সাধারণকরণের উদাহরণটি আবার কেন করবেন না, এবং তারপরে আপনি যে ফলাফল পেয়েছেন তা দেখুন ... এটি খুব আশ্চর্যজনক নয় যে আপনার আপনার ইনপুট ভেরিয়েবলগুলি বড় হলে সহগ ছোট হয়
seanv507

0

overfitting ডেমো

এই চিত্রটি অ্যান্ড্রু এনজির ডিএল কোর্সের আমার নোট থেকে এসেছে, যদি আপনার কোন প্রশ্ন থাকে তবে দয়া করে আমাকে জানান


1
নিউরাল নেটওয়ার্ক নিয়মিতকরণের এই নোটটি গুণমানের মাপ এবং অতিরিক্ত মান সম্পর্কে প্রশ্নটির উত্তর দেয় কেন আপনি ব্যাখ্যা করতে পারেন?
whuber

সমস্ত 3 টি সংযুক্ত ওভারফিটিং হ'ল নিয়মিতকরণ যা রোধ করার চেষ্টা করে এবং এটি উপরের কারণের কারণে উচ্চ
সহগকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.