آموزش AngularJS از کمپانی لیندا
سرفصلهای آموزش شامل :
Welcome
What you need to know
Using the exercise files
Using the challenges
1. Configuring a New Angular Project
Why Angular?
Downloading Angular and dependencies
Developing an application boilerplate
Starting a Node server
2. Templates
Supplying scope data
Filtering output
Controlling scopes
Including partials
Challenge: Editing airports
Solution: Editing airports
3. Application Structure
Routing views
Supplying navigation
Nesting scopes
Linking individual records
Challenge: Displaying two airports
Solution: Displaying two airports
4. Server-Side Integration
Defining services
Retrieving individual records
Searching through models
Saving form data
Challenge: Combining multiple data sources
Solution: Combining multiple data sources
Conclusion
Exploring advanced techniques
Finding Angular resources
Accord.NET #2
برای استفاده از Accord.NET میتوان به یکی از دو صورت زیر اقدام کرد :
- دریافت آخرین نسخهی متن باز و یا dllهای پروژهی Accord.NET از طریق گیت هاب
- نصب از طریق NuGet (با توجه به این که در چارچوب Accord.NET کتابخانههای متنوعی وجود دارند و در هر پروژه نیاز به نصب همگی آنها نیست، فضای نامهای مختلف در بستههای مختلف نیوگت قرار گرفتهاند و برای نصب هر کدام میتوانیم یکی از فرمانهای زیر را استفاده کنیم)
PM> Install-Package Accord.MachineLearning
PM> Install-Package Accord.Imaging
PM> Install-Package Accord.Neuro
نکته : روشهای یادگیری به دو دسته کلی با نظارت (Supervised learning) و بدون نظارت (Unsupervised learning) تقسیم بندی میشوند. در روش با نظارت، دادهها دارای برچسب یا label هستند و عملا نوع کلاسها مشخص هستند و اصطلاحا برای طبقه بندی (Classification) استفاده میشوند. در روش بدون نظارت، دادههایمان بدون برچسب هستند و فقط تعداد کلاس ها و نیز یک معیار تفکیک پذیری مشخص است و برای خوشه بندی (Clustering) استفاده میشوند.
عملکرد SVM یا ماشین بردار پشتیبان به صورت خلاصه به این صورت است که با در نظر گرفتن یک خط یا ابرصفحه جدا کننده فرضی، ماشین یا دسته بندی را ایجاد میکند که از نقاط ابتدایی کلاسهای مختلف که بردار پشتیبان یا SV نام دارند، بیشترین فاصله را دارند و در نهایت دادها را به دو کلاس مجزا تقسیم میکند.
در تصویر بالا مقداری خطا مشاهده میشود که با توجه با خطی بودن جداساز مجبور به پذیرش این خطا هستیم.
در نسخههای جدیدتر این الگوریتم یک Kernel ( از نوع خطی Linear ، چند جملهای Polynomial، گوسین Gaussian و یا ...) برای آن در نظر گرفته شد که عملا نگاشتی را بین خط (نه صرفا فقط خطی) را با آن ابرصفحه جداکننده برقرار کند. در نتیجه دسته بندی با خطای کمتری را خواهیم داشت. (اطلاعات بیشتر در + و همچنین مطالب دکتر سعید شیری درباره SVM در +)
یک مثال مفهومی : هدف اصلی در این مثال شبیه سازی تابع XNOR به Kernel SVM میباشد.
برای شروع کار از فضای نام MachineLearning استفاده میکنیم و بستهی نیوگت مربوطه را فرخوانی میکنیم. پس از اجرا، مشاهده میکنیم که فضای نامهای Accord.Math و Accord.Statistics نیز به پروژه اضافه میشود.
در ابتدا مقادیر ورودی و برچسبها را تعریف میکنیم
// ورودی double[][] inputs = { new double[] { 0, 0 }, // 0 xnor 0: 1 (label +1) new double[] { 0, 1 }, // 0 xnor 1: 0 (label -1) new double[] { 1, 0 }, // 1 xnor 0: 0 (label -1) new double[] { 1, 1 } // 1 xnor 1: 1 (label +1) }; // خروجی دسته بند ماشین بردار پشتیبان باید -1 یا +1 باشد int[] labels = { // 1, 0, 0, 1 1, -1, -1, 1 };
// ساخت کرنل IKernel kernel = createKernel(); // ساخت دسته بند به کمک کرنل انتخابی و تنظیم تعداد ویژگیها ورودیها به مقدار 2 KernelSupportVectorMachine machine = new KernelSupportVectorMachine(kernel, 2);
private static IKernel createKernel() { //var numPolyConstant = 1; //return new Linear(numPolyConstant); //var numDegree = 2; //var numPolyConstant = 1; //return new Polynomial(numDegree, numPolyConstant); //var numLaplacianSigma = 1000; //return new Laplacian(numLaplacianSigma); //var numSigAlpha = 7; //var numSigB = 6; //return new Sigmoid(numSigAlpha, numSigB); var numSigma = 0.1; return new Gaussian(numSigma); }
// معرفی دسته بندمان به الگوریتم یادگیری SMO SequentialMinimalOptimization teacher_smo = new SequentialMinimalOptimization(machine_svm, inputs, labels); // اجرای الگوریتم یادگیری double error = teacher_smo.Run(); Console.WriteLine(string.Format("error rate : {0}", error));
// بررسی یکی از ورودیها var sample = inputs[0]; int decision = System.Math.Sign(machine_svm.Compute(sample)); Console.WriteLine(string.Format("result for sample '0 xnor 0' is : {0}", decision));
دریافت کد
Angular 2 authentication revisited
Protecting Routes using Guards in Angular 2
معرفی Orleans 3.0
Major changes since Orleans 2.0
A new scheduler, which alone increased performance by over 30% in some cases
A new code generator based on Roslyn code analysis
Rewritten cluster membership for improved recovery speed
Co-hosting support