Found 15 repositories(showing 15)
jettbrains
W3C Strategic Highlights September 2019 This report was prepared for the September 2019 W3C Advisory Committee Meeting (W3C Member link). See the accompanying W3C Fact Sheet — September 2019. For the previous edition, see the April 2019 W3C Strategic Highlights. For future editions of this report, please consult the latest version. A Chinese translation is available. ☰ Contents Introduction Future Web Standards Meeting Industry Needs Web Payments Digital Publishing Media and Entertainment Web & Telecommunications Real-Time Communications (WebRTC) Web & Networks Automotive Web of Things Strengthening the Core of the Web HTML CSS Fonts SVG Audio Performance Web Performance WebAssembly Testing Browser Testing and Tools WebPlatform Tests Web of Data Web for All Security, Privacy, Identity Internationalization (i18n) Web Accessibility Outreach to the world W3C Developer Relations W3C Training Translations W3C Liaisons Introduction This report highlights recent work of enhancement of the existing landscape of the Web platform and innovation for the growth and strength of the Web. 33 working groups and a dozen interest groups enable W3C to pursue its mission through the creation of Web standards, guidelines, and supporting materials. We track the tremendous work done across the Consortium through homogeneous work-spaces in Github which enables better monitoring and management. We are in the middle of a period where we are chartering numerous working groups which demonstrate the rapid degree of change for the Web platform: After 4 years, we are nearly ready to publish a Payment Request API Proposed Recommendation and we need to soon charter follow-on work. In the last year we chartered the Web Payment Security Interest Group. In the last year we chartered the Web Media Working Group with 7 specifications for next generation Media support on the Web. We have Accessibility Guidelines under W3C Member review which includes Silver, a new approach. We have just launched the Decentralized Identifier Working Group which has tremendous potential because Decentralized Identifier (DID) is an identifier that is globally unique, resolveable with high availability, and cryptographically verifiable. We have Privacy IG (PING) under W3C Member review which strengthens our focus on the tradeoff between privacy and function. We have a new CSS charter under W3C Member review which maps the group's work for the next three years. In this period, W3C and the WHATWG have succesfully completed the negotiation of a Memorandum of Understanding rooted in the mutual belief that that having two distinct specifications claiming to be normative is generally harmful for the Web community. The MOU, signed last May, describes how the two organizations are to collaborate on the development of a single authoritative version of the HTML and DOM specifications. W3C subsequently rechartered the HTML Working Group to assist the W3C community in raising issues and proposing solutions for the HTML and DOM specifications, and for the production of W3C Recommendations from WHATWG Review Drafts. As the Web evolves continuously, some groups are looking for ways for specifications to do so as well. So-called "evergreen recommendations" or "living standards" aim to track continuous development (and maintenance) of features, on a feature-by-feature basis, while getting review and patent commitments. We see the maturation and further development of an incredible number of new technologies coming to the Web. Continued progress in many areas demonstrates the vitality of the W3C and the Web community, as the rest of the report illustrates. Future Web Standards W3C has a variety of mechanisms for listening to what the community thinks could become good future Web standards. These include discussions with the Membership, discussions with other standards bodies, the activities of thousands of participants in over 300 community groups, and W3C Workshops. There are lots of good ideas. The W3C strategy team has been identifying promising topics and invites public participation. Future, recent and under consideration Workshops include: Inclusive XR (5-6 November 2019, Seattle, WA, USA) to explore existing and future approaches on making Virtual and Augmented Reality experiences more inclusive, including to people with disabilities; W3C Workshop on Data Models for Transportation (12-13 September 2019, Palo Alto, CA, USA) W3C Workshop on Web Games (27-28 June 2019, Redmond, WA, USA), view report Second W3C Workshop on the Web of Things (3-5 June 2019, Munich, Germany) W3C Workshop on Web Standardization for Graph Data; Creating Bridges: RDF, Property Graph and SQL (4-6 March 2019, Berlin, Germany), view report Web & Machine Learning. The Strategy Funnel documents the staff's exploration of potential new work at various phases: Exploration and Investigation, Incubation and Evaluation, and eventually to the chartering of a new standards group. The Funnel view is a GitHub Project where new area are issues represented by “cards” which move through the columns, usually from left to right. Most cards start in Exploration and move towards Chartering, or move out of the funnel. Public input is welcome at any stage but particularly once Incubation has begun. This helps W3C identify work that is sufficiently incubated to warrant standardization, to review the ecosystem around the work and indicate interest in participating in its standardization, and then to draft a charter that reflects an appropriate scope. Ongoing feedback can speed up the overall standardization process. Since the previous highlights document, W3C has chartered a number of groups, and started discussion on many more: Newly Chartered or Rechartered Web Application Security WG (03-Apr) Web Payment Security IG (17-Apr) Patent and Standards IG (24-Apr) Web Applications WG (14-May) Web & Networks IG (16-May) Media WG (23-May) Media and Entertainment IG (06-Jun) HTML WG (06-Jun) Decentralized Identifier WG (05-Sep) Extended Privacy IG (PING) (30-Sep) Verifiable Claims WG (30-Sep) Service Workers WG (31-Dec) Dataset Exchange WG (31-Dec) Web of Things Working Group (31-Dec) Web Audio Working Group (31-Dec) Proposed charters / Advance Notice Accessibility Guidelines WG Privacy IG (PING) RDF Literal Direction WG Timed Text WG CSS WG Web Authentication WG Closed Internationalization Tag Set IG Meeting Industry Needs Web Payments All Web Payments specifications W3C's payments standards enable a streamlined checkout experience, enabling a consistent user experience across the Web with lower front end development costs for merchants. Users can store and reuse information and more quickly and accurately complete online transactions. The Web Payments Working Group has republished Payment Request API as a Candidate Recommendation, aiming to publish a Proposed Recommendation in the Fall 2019, and is discussing use cases and features for Payment Request after publication of the 1.0 Recommendation. Browser vendors have been finalizing implementation of features added in the past year (view the implementation report). As work continues on the Payment Handler API and its implementation (currently in Chrome and Edge Canary), one focus in 2019 is to increase adoption in other browsers. Recently, Mastercard demonstrated the use of Payment Request API to carry out EMVCo's Secure Remote Commerce (SRC) protocol whose payment method definition is being developed with active participation by Visa, Mastercard, American Express, and Discover. Payment method availability is a key factor in merchant considerations about adopting Payment Request API. The ability to get uniform adoption of a new payment method such as Secure Remote Commerce (SRC) also depends on the availability of the Payment Handler API in browsers, or of proprietary alternatives. Web Monetization, which the Web Payments Working Group will discuss again at its face-to-face meeting in September, can be used to enable micropayments as an alternative revenue stream to advertising. Since the beginning of 2019, Amazon, Brave Software, JCB, Certus Cybersecurity Solutions and Netflix have joined the Web Payments Working Group. In April, W3C launched the Web Payment Security Group to enable W3C, EMVCo, and the FIDO Alliance to collaborate on a vision for Web payment security and interoperability. Participants will define areas of collaboration and identify gaps between existing technical specifications in order to increase compatibility among different technologies, such as: How do SRC, FIDO, and Payment Request relate? The Payment Services Directive 2 (PSD2) regulations in Europe are scheduled to take effect in September 2019. What is the role of EMVCo, W3C, and FIDO technologies, and what is the current state of readiness for the deadline? How can we improve privacy on the Web at the same time as we meet industry requirements regarding user identity? Digital Publishing All Digital Publishing specifications, Publication milestones The Web is the universal publishing platform. Publishing is increasingly impacted by the Web, and the Web increasingly impacts Publishing. Topic of particular interest to Publishing@W3C include typography and layout, accessibility, usability, portability, distribution, archiving, offline access, print on demand, and reliable cross referencing. And the diverse publishing community represented in the groups consist of the traditional "trade" publishers, ebook reading system manufacturers, but also publishers of audio book, scholarly journals or educational materials, library scientists or browser developers. The Publishing Working Group currently concentrates on Audiobooks which lack a comprehensive standard, thus incurring extra costs and time to publish in this booming market. Active development is ongoing on the future standard: Publication Manifest Audiobook profile for Web Publications Lightweight Packaging Format The BD Comics Manga Community Group, the Synchronized Multimedia for Publications Community Group, the Publishing Community Group and a future group on archival, are companions to the working group where specific work is developed and incubated. The Publishing Community Group is a recently launched incubation channel for Publishing@W3C. The goal of the group is to propose, document, and prototype features broadly related to: publications on the Web reading modes and systems and the user experience of publications The EPUB 3 Community Group has successfully completed the revision of EPUB 3.2. The Publishing Business Group fosters ongoing participation by members of the publishing industry and the overall ecosystem in the development of Web infrastructure to better support the needs of the industry. The Business Group serves as an additional conduit to the Publishing Working Group and several Community Groups for feedback between the publishing ecosystem and W3C. The Publishing BG has played a vital role in fostering and advancing the adoption and continued development of EPUB 3. In particular the BG provided critical support to the update of EPUBCheck to validate EPUB content to the new EPUB 3.2 specification. This resulted in the development, in conjunction with the EPUB3 Community Group, of a new generation of EPUBCheck, i.e., EPUBCheck 4.2 production-ready release. Media and Entertainment All Media specifications The Media and Entertainment vertical tracks media-related topics and features that create immersive experiences for end users. HTML5 brought standard audio and video elements to the Web. Standardization activities since then have aimed at turning the Web into a professional platform fully suitable for the delivery of media content and associated materials, enabling missing features to stream video content on the Web such as adaptive streaming and content protection. Together with Microsoft, Comcast, Netflix and Google, W3C received an Technology & Engineering Emmy Award in April 2019 for standardization of a full TV experience on the Web. Current goals are to: Reinforce core media technologies: Creation of the Media Working Group, to develop media-related specifications incubated in the WICG (e.g. Media Capabilities, Picture-in-picture, Media Session) and maintain maintain/evolve Media Source Extensions (MSE) and Encrypted Media Extensions (EME). Improve support for Media Timed Events: data cues incubation. Enhance color support (HDR, wide gamut), in scope of the CSS WG and in the Color on the Web CG. Reduce fragmentation: Continue annual releases of a common and testable baseline media devices, in scope of the Web Media APIs CG and in collaboration with the CTA WAVE Project. Maintain the Road-map of Media Technologies for the Web which highlights Web technologies that can be used to build media applications and services, as well as known gaps to enable additional use cases. Create the future: Discuss perspectives for Media and Entertainment for the Web. Bring the power of GPUs to the Web (graphics, machine learning, heavy processing), under incubation in the GPU for the Web CG. Transition to a Working Group is under discussion. Determine next steps after the successful W3C Workshop on Web Games of June 2019. View the report. Timed Text The Timed Text Working Group develops and maintains formats used for the representation of text synchronized with other timed media, like audio and video, and notably works on TTML, profiles of TTML, and WebVTT. Recent progress includes: A robust WebVTT implementation report poises the specification for publication as a proposed recommendation. Discussions around re-chartering, notably to add a TTML Profile for Audio Description deliverable to the scope of the group, and clarify that rendering of captions within XR content is also in scope. Immersive Web Hardware that enables Virtual Reality (VR) and Augmented Reality (AR) applications are now broadly available to consumers, offering an immersive computing platform with both new opportunities and challenges. The ability to interact directly with immersive hardware is critical to ensuring that the web is well equipped to operate as a first-class citizen in this environment. The Immersive Web Working Group has been stabilizing the WebXR Device API while the companion Immersive Web Community Group incubates the next series of features identified as key for the future of the Immersive Web. W3C plans a workshop focused on the needs and benefits at the intersection of VR & Accessibility (Inclusive XR), on 5-6 November 2019 in Seattle, WA, USA, to explore existing and future approaches on making Virtual and Augmented Reality experiences more inclusive. Web & Telecommunications The Web is the Open Platform for Mobile. Telecommunication service providers and network equipment providers have long been critical actors in the deployment of Web technologies. As the Web platform matures, it brings richer and richer capabilities to extend existing services to new users and devices, and propose new and innovative services. Real-Time Communications (WebRTC) All Real-Time Communications specifications WebRTC has reshaped the whole communication landscape by making any connected device a potential communication end-point, bringing audio and video communications anywhere, on any network, vastly expanding the ability of operators to reach their customers. WebRTC serves as the corner-stone of many online communication and collaboration services. The WebRTC Working Group aims to bringing WebRTC 1.0 (and companion specification Media Capture and Streams) to Recommendation by the end of 2019. Intense efforts are focused on testing (supported by a dedicated hackathon at IETF 104) and interoperability. The group is considering pushing features that have not gotten enough traction to separate modules or to a later minor revision of the spec. Beyond WebRTC 1.0, the WebRTC Working Group will focus its efforts on WebRTC NV which the group has started documenting by identifying use cases. Web & Networks Recently launched, in the wake of the May 2018 Web5G workshop, the Web & Networks Interest Group is chaired by representatives from AT&T, China Mobile and Intel, with a goal to explore solutions for web applications to achieve better performance and resource allocation, both on the device and network. The group's first efforts are around use cases, privacy & security requirements and liaisons. Automotive All Automotive specifications To create a rich application ecosystem for vehicles and other devices allowed to connect to the vehicle, the W3C Automotive Working Group is delivering a service specification to expose all common vehicle signals (engine temperature, fuel/charge level, range, tire pressure, speed, etc.) The Vehicle Information Service Specification (VISS), which is a Candidate Recommendation, is seeing more implementations across the industry. It provides the access method to a common data model for all the vehicle signals –presently encapsulating a thousand or so different data elements– and will be growing to accommodate the advances in automotive such as autonomous and driver assist technologies and electrification. The group is already working on a successor to VISS, leveraging the underlying data model and the VIWI submission from Volkswagen, for a more robust means of accessing vehicle signals information and the same paradigm for other automotive needs including location-based services, media, notifications and caching content. The Automotive and Web Platform Business Group acts as an incubator for prospective standards work. One of its task forces is using W3C VISS in performing data sampling and off-boarding the information to the cloud. Access to the wealth of information that W3C's auto signals standard exposes is of interest to regulators, urban planners, insurance companies, auto manufacturers, fleet managers and owners, service providers and others. In addition to components needed for data sampling and edge computing, capturing user and owner consent, information collection methods and handling of data are in scope. The upcoming W3C Workshop on Data Models for Transportation (September 2019) is expected to focus on the need of additional ontologies around transportation space. Web of Things All Web of Things specifications W3C's Web of Things work is designed to bridge disparate technology stacks to allow devices to work together and achieve scale, thus enabling the potential of the Internet of Things by eliminating fragmentation and fostering interoperability. Thing descriptions expressed in JSON-LD cover the behavior, interaction affordances, data schema, security configuration, and protocol bindings. The Web of Things complements existing IoT ecosystems to reduce the cost and risk for suppliers and consumers of applications that create value by combining multiple devices and information services. There are many sectors that will benefit, e.g. smart homes, smart cities, smart industry, smart agriculture, smart healthcare and many more. The Web of Things Working Group is finishing the initial Web of Things standards, with support from the Web of Things Interest Group: Web of Things Architecture Thing Descriptions Strengthening the Core of the Web HTML The HTML Working Group was chartered early June to assist the W3C community in raising issues and proposing solutions for the HTML and DOM specifications, and to produce W3C Recommendations from WHATWG Review Drafts. A few days before, W3C and the WHATWG signed a Memorandum of Understanding outlining the agreement to collaborate on the development of a single version of the HTML and DOM specifications. Issues and proposed solutions for HTML and DOM done via the newly rechartered HTML Working Group in the WHATWG repositories The HTML Working Group is targetting November 2019 to bring HTML and DOM to Candidate Recommendations. CSS All CSS specifications CSS is a critical part of the Open Web Platform. The CSS Working Group gathers requirements from two large groups of CSS users: the publishing industry and application developers. Within W3C, those groups are exemplified by the Publishing groups and the Web Platform Working Group. The former requires things like better pagination support and advanced font handling, the latter needs intelligent (and fast!) scrolling and animations. What we know as CSS is actually a collection of almost a hundred specifications, referred to as ‘modules’. The current state of CSS is defined by a snapshot, updated once a year. The group also publishes an index defining every term defined by CSS specifications. Fonts All Fonts specifications The Web Fonts Working Group develops specifications that allow the interoperable deployment of downloadable fonts on the Web, with a focus on Progressive Font Enrichment as well as maintenance of WOFF Recommendations. Recent and ongoing work includes: Early API experiments by Adobe and Monotype have demonstrated the feasibility of a font enrichment API, where a server delivers a font with minimal glyph repertoire and the client can query the full repertoire and request additional subsets on-the-fly. In other experiments, the Brotli compression used in WOFF 2 was extended to support shared dictionaries and patch update. Metrics to quantify improvement are a current hot discussion topic. The group will meet at ATypi 2019 in Japan, to gather requirements from the international typography community. The group will first produce a report summarizing the strengths and weaknesses of each prototype solution by Q2 2020. SVG All SVG specifications SVG is an important and widely-used part of the Open Web Platform. The SVG Working Group focuses on aligning the SVG 2.0 specification with browser implementations, having split the specification into a currently-implemented 2.0 and a forward-looking 2.1. Current activity is on stabilization, increased integration with the Open Web Platform, and test coverage analysis. The Working Group was rechartered in March 2019. A new work item concerns native (non-Web-browser) uses of SVG as a non-interactive, vector graphics format. Audio The Web Audio Working Group was extended to finish its work on the Web Audio API, expecting to publish it as a Recommendation by year end. The specification enables synthesizing audio in the browser. Audio operations are performed with audio nodes, which are linked together to form a modular audio routing graph. Multiple sources — with different types of channel layout — are supported. This modular design provides the flexibility to create complex audio functions with dynamic effects. The first version of Web Audio API is now feature complete and is implemented in all modern browsers. Work has started on the next version, and new features are being incubated in the Audio Community Group. Performance Web Performance All Web Performance specifications There are currently 18 specifications in development in the Web Performance Working Group aiming to provide methods to observe and improve aspects of application performance of user agent features and APIs. The W3C team is looking at related work incubated in the W3C GPU for the Web (WebGPU) Community Group which is poised to transition to a W3C Working Group. A preliminary draft charter is available. WebAssembly All WebAssembly specifications WebAssembly improves Web performance and power by being a virtual machine and execution environment enabling loaded pages to run native (compiled) code. It is deployed in Firefox, Edge, Safari and Chrome. The specification will soon reach Candidate Recommendation. WebAssembly enables near-native performance, optimized load time, and perhaps most importantly, a compilation target for existing code bases. While it has a small number of native types, much of the performance increase relative to Javascript derives from its use of consistent typing. WebAssembly leverages decades of optimization for compiled languages and the byte code is optimized for compactness and streaming (the web page starts executing while the rest of the code downloads). Network and API access all occurs through accompanying Javascript libraries -- the security model is identical to that of Javascript. Requirements gathering and language development occur in the Community Group while the Working Group manages test development, community review and progression of specifications on the Recommendation Track. Testing Browser testing plays a critical role in the growth of the Web by: Improving the reliability of Web technology definitions; Improving the quality of implementations of these technologies by helping vendors to detect bugs in their products; Improving the data available to Web developers on known bugs and deficiencies of Web technologies by publishing results of these tests. Browser Testing and Tools The Browser Testing and Tools Working Group is developing WebDriver version 2, having published last year the W3C Recommendation of WebDriver. WebDriver acts as a remote control interface that enables introspection and control of user agents, provides a platform- and language-neutral wire protocol as a way for out-of-process programs to remotely instruct the behavior of Web, and emulates the actions of a real person using the browser. WebPlatform Tests The WebPlatform Tests project now provides a mechanism which allows to fully automate tests that previously needed to be run manually: TestDriver. TestDriver enables sending trusted key and mouse events, sending complex series of trusted pointer and key interactions for things like in-content drag-and-drop or pinch zoom, and even file upload. Since 2014 W3C began work on this coordinated open-source effort to build a cross-browser test suite for the Web Platform, which WHATWG, and all major browsers adopted. Web of Data All Data specifications There have been several great success stories around the standardization of data on the web over the past year. Verifiable Claims seems to have significant uptake. It is also significant that the Distributed Identifier WG charter has received numerous favorable reviews, and was just recently launched. JSON-LD has been a major success with the large deployment on Web sites via schema.org. JSON-LD 1.1 completed technical work, about to transition to CR More than 25% of websites today include schema.org data in JSON-LD The Web of Things description is in CR since May, making use of JSON-LD Verifiable Credentials data model is in CR since July, also making use of JSON-LD Continued strong interest in decentralized identifiers Engagement from the TAG with reframing core documents, such as Ethical Web Principles, to include data on the web within their scope Data is increasingly important for all organizations, especially with the rise of IoT and Big Data. W3C has a mature and extensive suite of standards relating to data that were developed over two decades of experience, with plans for further work on making it easier for developers to work with graph data and knowledge graphs. Linked Data is about the use of URIs as names for things, the ability to dereference these URIs to get further information and to include links to other data. There are ever-increasing sources of open Linked Data on the Web, as well as data services that are restricted to the suppliers and consumers of those services. The digital transformation of industry is seeking to exploit advanced digital technologies. This will facilitate businesses to integrate horizontally along the supply and value chains, and vertically from the factory floor to the office floor. W3C is seeking to make it easier to support enterprise-wide data management and governance, reflecting the strategic importance of data to modern businesses. Traditional approaches to data have focused on tabular databases (SQL/RDBMS), Comma Separated Value (CSV) files, and data embedded in PDF documents and spreadsheets. We're now in midst of a major shift to graph data with nodes and labeled directed links between them. Graph data is: Faster than using SQL and associated JOIN operations More favorable to integrating data from heterogeneous sources Better suited to situations where the data model is evolving In the wake of the recent W3C Workshop on Graph Data we are in the process of launching a Graph Standardization Business Group to provide a business perspective with use cases and requirements, to coordinate technical standards work and liaisons with external organizations. Web for All Security, Privacy, Identity All Security specifications, all Privacy specifications Authentication on the Web As the WebAuthn Level 1 W3C Recommendation published last March is seeing wide implementation and adoption of strong cryptographic authentication, work is proceeding on Level 2. The open standard Web API gives native authentication technology built into native platforms, browsers, operating systems (including mobile) and hardware, offering protection against hacking, credential theft, phishing attacks, thus aiming to end the era of passwords as a security construct. You may read more in our March press release. Privacy An increasing number of W3C specifications are benefitting from Privacy and Security review; there are security and privacy aspects to every specification. Early review is essential. Working with the TAG, the Privacy Interest Group has updated the Self-Review Questionnaire: Security and Privacy. Other recent work of the group includes public blogging further to the exploration of anti-patterns in standards and permission prompts. Security The Web Application Security Working Group adopted Feature Policy, aiming to allow developers to selectively enable, disable, or modify the behavior of some of these browser features and APIs within their application; and Fetch Metadata, aiming to provide servers with enough information to make a priori decisions about whether or not to service a request based on the way it was made, and the context in which it will be used. The Web Payment Security Interest Group, launched last April, convenes members from W3C, EMVCo, and the FIDO Alliance to discuss cooperative work to enhance the security and interoperability of Web payments (read more about payments). Internationalization (i18n) All Internationalization specifications, educational articles related to Internationalization, spec developers checklist Only a quarter or so current Web users use English online and that proportion will continue to decrease as the Web reaches more and more communities of limited English proficiency. If the Web is to live up to the "World Wide" portion of its name, and for the Web to truly work for stakeholders all around the world engaging with content in various languages, it must support the needs of worldwide users as they engage with content in the various languages. The growth of epublishing also brings requirements for new features and improved typography on the Web. It is important to ensure the needs of local communities are captured. The W3C Internationalization Initiative was set up to increase in-house resources dedicated to accelerating progress in making the World Wide Web "worldwide" by gathering user requirements, supporting developers, and education & outreach. For an overview of current projects see the i18n radar. W3C's Internationalization efforts progressed on a number of fronts recently: Requirements: New African and European language groups will work on the gap analysis, errata and layout requirements. Gap analysis: Japanese, Devanagari, Bengali, Tamil, Lao, Khmer, Javanese, and Ethiopic updated in the gap-analysis documents. Layout requirements document: notable progress tracked in the Southeast Asian Task Force while work continues on Chinese layout requirements. Developer support: Spec reviews: the i18n WG continues active review of specifications of the WHATWG and other W3C Working Groups. Short review checklist: easy way to begin a self-review to help spec developers understand what aspects of their spec are likely to need attention for internationalization, and points them to more detailed checklists for the relevant topics. It also helps those reviewing specs for i18n issues. Strings on the Web: Language and Direction Metadata lays out issues and discusses potential solutions for passing information about language and direction with strings in JSON or other data formats. The document was rewritten for clarity, and expanded. The group is collaborating with the JSON-LD and Web Publishing groups to develop a plan for updating RDF, JSON-LD and related specifications to handle metadata for base direction of text (bidi). User-friendly test format: a new format was developed for Internationalization Test Suite tests, which displays helpful information about how the test works. This particularly useful because those tests are pointed to by educational materials and gap-analysis documents. Web Platform Tests: a large number of tests in the i18n test suite have been ported to the WPT repository, including: css-counter-styles, css-ruby, css-syntax, css-test, css-text-decor, css-writing-modes, and css-pseudo. Education & outreach: (for all educational materials, see the HTML & CSS Authoring Techniques) Web Accessibility All Accessibility specifications, WAI resources The Web Accessibility Initiative supports W3C's Web for All mission. Recent achievements include: Education and training: Inaccessibility of CAPTCHA updated to bring our analysis and recommendations up to date with CAPTCHA practice today, concluding two years of extensive work and invaluable input from the public (read more on the W3C Blog Learn why your web content and applications should be accessible. The Education and Outreach Working Group has completed revision and updating of the Business Case for Digital Accessibility. Accessibility guidelines: The Accessibility Guidelines Working Group has continued to update WCAG Techniques and Understanding WCAG 2.1; and published a Candidate Recommendation of Accessibility Conformance Testing Rules Format 1.0 to improve inter-rater reliability when evaluating conformance of web content to WCAG An updated charter is being developed to host work on "Silver", the next generation accessibility guidelines (WCAG 2.2) There are accessibility aspects to most specifications. Check your work with the FAST checklist. Outreach to the world W3C Developer Relations To foster the excellent feedback loop between Web Standards development and Web developers, and to grow participation from that diverse community, recent W3C Developer Relations activities include: @w3cdevs tracks the enormous amount of work happening across W3C W3C Track during the Web Conference 2019 in San Francisco Tech videos: W3C published the 2019 Web Games Workshop videos The 16 September 2019 Developer Meetup in Fukuoka, Japan, is open to all and will combine a set of technical demos prepared by W3C groups, and a series of talks on a selected set of W3C technologies and projects W3C is involved with Mozilla, Google, Samsung, Microsoft and Bocoup in the organization of ViewSource 2019 in Amsterdam (read more on the W3C Blog) W3C Training In partnership with EdX, W3C's MOOC training program, W3Cx offers a complete "Front-End Web Developer" (FEWD) professional certificate program that consists of a suite of five courses on the foundational languages that power the Web: HTML5, CSS and JavaScript. We count nearly 900K students from all over the world. Translations Many Web users rely on translations of documents developed at W3C whose official language is English. W3C is extremely grateful to the continuous efforts of its community in ensuring our various deliverables in general, and in our specifications in particular, are made available in other languages, for free, ensuring their exposure to a much more diverse set of readers. Last Spring we developed a more robust system, a new listing of translations of W3C specifications and updated the instructions on how to contribute to our translation efforts. W3C Liaisons Liaisons and coordination with numerous organizations and Standards Development Organizations (SDOs) is crucial for W3C to: make sure standards are interoperable coordinate our respective agenda in Internet governance: W3C participates in ICANN, GIPO, IGF, the I* organizations (ICANN, IETF, ISOC, IAB). ensure at the government liaison level that our standards work is officially recognized when important to our membership so that products based on them (often done by our members) are part of procurement orders. W3C has ARO/PAS status with ISO. W3C participates in the EU MSP and Rolling Plan on Standardization ensure the global set of Web and Internet standards form a compatible stack of technologies, at the technical and policy level (patent regime, fragmentation, use in policy making) promote Standards adoption equally by the industry, the public sector, and the public at large Coralie Mercier, Editor, W3C Marketing & Communications $Id: Overview.html,v 1.60 2019/10/15 12:05:52 coralie Exp $ Copyright © 2019 W3C ® (MIT, ERCIM, Keio, Beihang) Usage policies apply.
vkakerbeck
Experiments on different dataset on how to grow networks during training to learn new image categories.
Directly Conditional Facies Modeling Using an Improved Progressive Growing of Generative Adversarial Networks (GANs)
markmartorilopez
Progressive Growing Generative Adversarial Network with Flickr-FACES-HQ dataset.
prash030
High Resolution Chest X-ray Image Synthesis Using Progressive-Growing Generative Adversarial Networks
MAHENDRA-BUOY
text-to-image synthesis using Generative Adversarial Networks (GANs). The implementation is inspired by StackGAN, Wasserstein GAN-CLS, and Progressive Growing GANs (PGGAN) to generate images based on textual descriptions.
ACK-J
A semi-supervised progressively growing generative adversarial network
sharifmansour
Progressive Growing of Least Squares Generative Adversarial Networks
This repository contains the implementation and experimental results of generative models for chest X-ray image synthesis using Progressive Growing Generative Adversarial Networks (PGGANs).
Implements dynamic and expandable architectures for continual learning — where networks grow or prune over tasks to balance plasticity and stability. Includes Progressive Neural Networks, Dynamically Expandable Networks (DEN), and PackNet, with utilities for parameter freez
A home assistant add-on that allows editing of automations and scripts using a network of ai agents, who progressively grow their knowledgebase to personalise themselves to your home setup.
CarlosAPard0
I developed this project as a hobby to better understand Generative Adversarial Networks (GANs). Due to limited GPU resources, I focused on creating low-resolution images, specifically up to 128x128 pixels, using a Progressive Growing GAN (ProGan) architecture.
rskworld
This project implements StyleGAN, which uses a style-based generator architecture for high-quality image generation. The generator uses adaptive instance normalization (AdaIN) to control style at different resolutions. It includes progressive growing, mapping network, and synthesis network for photorealistic images with controllable attributes.
anudeepbablu
We describe a new training methodology for generative adversarial networks. The key idea is to grow both the generator and discriminator progressively: starting from a low resolution, we add new layers that model increasingly fine details as training progresses. This both speeds the training up and greatly stabilizes it, allowing us to produce images of unprecedented quality, e.g., CelebA images at 1024^2. We also propose a simple way to increase the variation in generated images, and achieve a record inception score of 8.80 in unsupervised CIFAR10. Additionally, we describe several implementation details that are important for discouraging unhealthy competition between the generator and discriminator. Finally, we suggest a new metric for evaluating GAN results, both in terms of image quality and variation. As an additional contribution, we construct a higher-quality version of the CelebA dataset.
Nimba-Algo-Trading
Dans les années 90, les chercheurs de artificial neural network sont arrivés à la conclusion qu'il était nécessaire d’élaborer une nouvelle classe de ces mécanismes informatiques, dont la caractéristique serait l'absence d'une topologie fixe des couches de réseau. Cela indique que le nombre et la disposition des neurones artificiels dans l'espace des caractéristiques ne sont pas pré-indiqués, mais sont calculés dans le processus d'apprentissage de ces modèles en fonction des caractéristiques des données d'entrée, en s'adaptant indépendamment à celles-ci. La raison de l'émergence de telles idées était un certain nombre de problèmes pratiques concernant la compression entravée et la quantification vectorielle des paramètres d'entrée, tels que la reconnaissance de la parole et des images, la classification et la reconnaissance de motifs abstraits. Depuis cette époque self-organizing maps et le Hebbian Learning étaient déjà connus (en particulier, les algorithmes qui produisent la typologisation du réseau, c'est-à-dire créent un ensemble de connexions entre les neurones, formant une couche "framework"), et les approches de un apprentissage compétitif « doux » avait été élaboré (dans de telles procédures, l'adaptation du poids non seulement du neurone « gagnant », mais aussi de ses « voisins » se produit), l'étape logique était de combiner ces méthodes, ce qui a été fait en 1995 par un scientifique allemand Bernd Fritzke qui a créé l'algorithme désormais populaire Growing gaz neuronal (GNG). La méthode s'est avérée assez réussie, de sorte qu'une série de ses modifications est apparue ; l'un d'eux était l'adaptation pour l'apprentissage supervisé (Supervised-GNG). Comme l'a noté l'auteur, S-GNG a affiché une efficacité considérablement plus grande dans la classification des données que, disons, un réseau de fonctions de base radiales, en raison de la capacité d'optimiser la topologie dans les zones d'espace d'entrée qui sont difficiles à classer. Sans aucun doute, GNG est supérieur au groupement "K-means". Il est à noter qu'en 2001 Fritzke a mis fin à sa carrière de scientifique à l'université de la Ruhr (Bochum, Allemagne) après avoir reçu une offre d'emploi à la bourse allemande (Deutsche Bӧrse). Eh bien, ce fait était une autre raison de choisir son algorithme comme base pour écrire cet article. Ainsi, GNG est un algorithme qui permet de mettre en œuvre un groupement adaptatif des données d'entrée, c'est-à-dire non seulement diviser l'espace en groupes, mais aussi de déterminer leur nombre requis en fonction des caractéristiques des données. En commençant avec seulement deux neurones, l'algorithme en modifie systématiquement (augmente principalement) le nombre, tout en créant un ensemble de connexions entre les neurones qui correspond le mieux à la distribution des vecteurs d'entrée, en utilisant l'approche de l'apprentissage Hebbien compétitif. Chaque neurone dispose d’ une variable interne qui accumule ce qu'on appelle "l'erreur locale". Les connexions entre les nœuds sont caractérisées par une variable appelée « âge ». Le pseudo-code GNG ressemble à ceci : Créez deux nœuds avec les vecteurs de poids, permis par la distribution des vecteurs d'entrée, et les valeurs nulles des erreurs locales ; connectez des nœuds en définissant son âge sur 0. Entrez un vecteur dans un réseau neuronal. Trouvez deux neurones et les plus proches de , c'est-à-dire des nœuds avec un vecteur de poids et de sorte que soit minimal, et soit la deuxième valeur minimale de distance parmi tous les nœuds. Mettre à jour l'erreur locale du neurone gagnant en y ajoutant le carré de la distance entre les vecteurs et : Déplacez le neurone gagnant et tous ses voisins topologiques (c'est-à-dire tous les neurones qui ont une connexion avec le gagnant) dans la direction du vecteur d'entrée par des distances égales aux titres et à partir d'un plein. Augmentez l'âge de toutes les connexions sortantes du gagnant par 1. Si les deux meilleurs neurones et sont connectés, définissez l'âge de leur connexion à zéro. Sinon, créez une connexion entre eux. Supprimez les connexions dont l'âge est supérieur à .. S'il en résulte que les neurones n'ont plus de bords d'émanation, supprimez également ces neurones. Si le nombre de l'itération en cours est un multiple de , et que la taille limite du réseau n'a pas atteint, insérez un nouveau neurone comme suit : Déterminez un neurone avec la plus grande erreur locale. Déterminez parmi les voisins du neurone avec une erreur maximale. Créez un nœud "au milieu" entre et : Remplacez le bord entre et par le bord entre et , et . Diminuez les erreurs de neurones et , réglez la valeur de l'erreur de neurone . . Diminuez les erreurs de tous les neurones par la fraction .. Si un critère d'arrêt n'est pas encore rempli, passez à l'étape 2. Examinons comment le gaz neuronal en croissance s'adapte aux caractéristiques de l'espace d'entrée. Tout d'abord, faites attention à l'augmentation de la variable d'erreur du gagnant à l'étape 4. Cette procédure conduit au fait que les nœuds qui gagnent le plus souvent, c'est-à-dire ceux au voisinage desquels apparaissent le plus grand nombre de signaux d'entrée, ont la plus grande erreur, et donc ces zones sont de premiers candidats au « compactage » en ajoutant de nouveaux nœuds. Le décalage des nœuds dans la direction du vecteur d'entrée à l'étape 5 indique que le gagnant essaie de "moyenner" sa position parmi les signaux d'entrée situés dans son voisinage. Dans ce cas, le meilleur neurone peut "attire" ses voisins dans la direction du signal ( est choisi en règle générale). J'explique l'opération avec des bords entre les neurones aux étapes 6-8. La signification du vieillissement et de la suppression des anciennes connexions est que la topologie du réseau doit être au maximum proche de la triangulation Delaunay, c'est-à-dire une triangulation (subdivision en triangles) de neurones dans lequel, entre autres, l'angle minimal de tous les angles des triangles dans la triangulation est maximisé (en évitant les triangles "fins"). En termes simples, la triangulation de Delaunay correspond à la plus "belle", au sens d'entropie maximale, de topologie de la couche. Il convient de noter que la structure topologique n'est pas requise en tant qu'unité distincte, mais lorsqu'elle est utilisée pour déterminer l'emplacement de nouveaux nœuds lorsqu'ils sont insérés à l'étape 8 - ils sont toujours situés au milieu d'un bord. L'étape p est une correction des variables d'erreur de tous les neurones de la couche. Il s'agit de s'assurer que le réseau "oublie" les anciens vecteurs d'entrée et répond mieux aux nouveaux. Ainsi, nous obtenons la possibilité d'utiliser le gaz neuronal en croissance pour l'adaptation des réseaux neuronaux en fonction du temps, à savoir, des distributions lentement dérivant des signaux d'entrée. Ceci, cependant, ne lui offre pas la capacité de suivre les changements rapides dans les caractéristiques des entrées (voir plus de détails ci-dessous dans la section où les inconvénients de l'algorithme sont soulevés). Peut-être devrions-nous examiner le critère d’arrêt séparément. L'algorithme laisse place à la fantaisie des développeurs de systèmes d'analyse. Les options possibles sont : vérifier l'efficacité du réseau sur l'ensemble de test, analyser la dynamique de l'erreur moyenne des neurones, restreindre la complexité du réseau, etc. À titre informatif, nous travaillerons avec l'option la plus simple - car le but de cet article est de démontrer non seulement l'algorithme lui-même, mais les possibilités de son implémentation au moyen de MQL5; nous continuerons l'apprentissage de la couche jusqu'à épuisement des entrées (naturellement leur nombre est prédéfini). Lors de la programmation de l'algorithme, nous devrons évidemment faire face à la nécessité de stocker ce que l'on appelle des "ensembles". Nous aurons deux ensembles – un ensemble de neurones et un ensemble de bords entre eux. Bien que les deux structures évoluent au cours du programme (et nous prévoyons à la fois d'ajouter et de supprimer des éléments), nous devrions également fournir des mécanismes pour cela. Bien sûr, nous pourrions essayer d'utiliser des tableaux d'objets dynamiques, mais nous devrions effectuer de nombreuses opérations de copie-déplacement de données, ce qui ralentit essentiellement le programme. Une option plus appropriée pour travailler avec des abstractions avec les propriétés indiquées est les graphes de programme et leur version la plus simple - une liste chaînée. Je rappellerai à nos lecteurs le principe de fonctionnement de la linkedlist (Fig. 1). Les objets de la classe de base contiennent un pointeur vers le même objet que l'un des membres, ce qui permet de les combiner dans des structures linéaires, sans tenir compte de l'ordre physique des objets en mémoire. De plus, il existe la classe "carriage", qui encapsule la procédure de déplacement à travers la liste, l'ajout, l'insertion et la suppression de nœuds, la recherche, la comparaison et le tri, et, si nécessaire, d'autres procédures. . Les spécialistes de MetaQuotes Software Corp. ont déjà implémenté des listes chaînées des objets de la classe CObject dans une bibliothèque standard. Le code de programme correspondant se trouve dans le fichier d'en-tête List.mqh, qui se trouve dans MQL5\Include\Arrays du pack de livraison standard de MetaTrader 5. Nous ne réinventons pas la roue et ferons confiance à la qualification des programmeurs respectés de MetaQuotes, prenant les classes CObject et CList comme base de nos structures de données. Ici, nous utiliserons l'un des piliers de l'approche orientée objet - le mécanisme d'héritage. Définissons d'abord la forme logicielle du concept de artificial neuron". L'une des règles d'étiquette lors de l’élaboration d'applications POO est de toujours commencer à programmer avec les structures de données les plus courantes. Même lorsque vous écrivez uniquement pour vous-même, mais surtout si l'on suppose que les codes seront disponibles pour d'autres programmeurs, vous devez garder à l'esprit le fait qu'à l'avenir les développeurs peuvent avoir des idées différentes pour l’élaboration la modification du programme logique; et vous ne pouvez pas savoir à l'avance à quel endroit les modifications seront apportées. Le principe de la POO implique que les autres développeurs ne devront pas examiner vos classes, au contraire qu'ils devraient pouvoir hériter des structures de données à partir des données disponibles au bon endroit de la hiérarchie. Ainsi, la première classe écrite doit être aussi abstraite que possible, et les caractéristiques doivent être ajoutées aux niveaux inférieurs, lorsqu'on est plus proche « de la terre pécheresse ». Appliqué à notre problème, cela indique que nous commençons à écrire un programme avec la définition de la classe CCustomNeuron ("une sorte de neurone"), qui, comme tous les neurones artificiels, aura un certain nombre de synapses (poids d'entrée) et la valeur de sortie Il pourra s'initialiser (attribuer des valeurs aux poids), calculer la valeur du signal à sa sortie, et même adapter ses poids d'une valeur déterminée. Nous pouvons à peine atteindre plus d'abstraction (compte tenu du fait que nous héritons notre classe d'un CObject généralisé au maximum) - tous les neurones doivent être en mesure d'effectuer les actions déterminées. Pour décrire les données, créez un fichier d'en-tête Neurons.mqh, en le plaçant dans le dossier Include\GNG. Les fonctions définies dans la classe sont très simples, il n'est donc pas nécessaire d'inclure leurs descriptions détaillées ici. Notez que nous avons défini la fonction de traitement des données d'entrée (la valeur de sortie est ici calculée comme celle d'un perceptron ordinaire) avec le modificateur virtual. Cela indique que dans le cas où la méthode est redéfinie par des classes dérivées, la procédure appropriée sera choisie en fonction de la classe d'objets réelle de manière dynamique au moment de l'exécution, ce qui augmente sa flexibilité, y compris celle dans le sens de l'interaction avec l'utilisateur, et réduit les coûts de main-d'œuvre pour la programmation. Malgré le fait qu'apparemment nous n'ayons rien fait pour organiser les neurones dans une liste chaînée, en fait cela s'est déjà produit au moment où nous avons souligné que la nouvelle classe hérite de CObject. Ainsi, les membres privés de notre classe sont maintenant , et , qui sont du type "pointer at CObject" et pointent, respectivement, sur le premier, l’actuel et le dernier élément de la liste. Nous avons également toutes les fonctions nécessaires pour naviguer dans la liste. Il est maintenant temps de souligner les différences d'un neurone de la couche GNG par rapport à ses autres homologues en définissant la classe CGNGNeuron : Donc, comme vous pouvez le constater, ces différences sont en présence de champs : - le carré actuel de la distance entre le vecteur d'entrée et le vecteur de poids des neurones, – une variable qui accumule l'erreur locale et un identifiant unique, - il est nécessaire pour nous permettre de joindre davantage les neurones par des connexions paires (la simple indexation existant dans la classe CList n'est pas suffisante, car nous devrons ajouter et supprimer des neurones, ce qui entraînera une confusion dans la numérotation). La fonction a changé - maintenant elle calcule la valeur du champ d' . Ne faites pas attention au champ pour l'instant, sa signification sera expliquée plus loin dans la section "Modification de l'algorithme". L'étape suivante consiste à écrire une classe qui représente une connexion entre deux neurones. Il n'y a rien de difficile ici - un bord à deux extrémités (neurones spécifiés par les identifiants et ) et un initialement égal à zéro. Nous allons maintenant travailler avec des classes "carrières" de listes chaînées, qui comportent des possibilités nécessaires à l'implémentation de l'algorithme GNG. Tout d'abord, héritez d'une classe de liste de neurones de CList : Dans le constructor de classe un générateur de nombres pseudo-aléatoires est initialisé : il sera utilisé pour attribuer des identifiants uniques aux éléments de la liste. Expliquons la signification des méthodes de classe : La méthode est un ajout aux fonctionnalités de la classe Lors de l'appel, un nœud est ajouté à la fin de la liste, ou le premier nœud est créé si la luxure est vide. La fonction doit son apparition à l'algorithme GNG. Rappelez-vous que la croissance du réseau commence avec deux neurones, donc cette signature nous conviendrait le mieux. Dans le corps de la fonction, lors de l'utilisation des ID , , , il est nécessaire de convertir explicitement puis taper CGNGNeuron*, si nous souhaitons utiliser la fonctionnalité de cette classe (les variables déterminées ont été héritées de CList, donc en principe elles pointent vers CObject ). La fonction comme son nom l’indique, recherche un neurone par son ID et renvoie un pointeur sur l'élément trouvé ou NULL s'il ne le trouve pas. - fait également partie de l'algorithme. Nous devrons rechercher un gagnant dans la liste des neurones, et celui à côté en termes de proximité avec le vecteur d'entrée, c'est pour cela que nous utilisons cette fonction. Notez que les paramètres sont passés à cette fonction par référence afin que nous puissions y écrire les valeurs renvoyées ( indiqué "référence à un pointeur" - c'est une syntaxe correcte, l'inverse indique "pointeur sur une référence" qui est interdit : le compilateur générera une erreur dans ce cas). La classe suivante est une liste de connexions entre les neurones. Méthodes définies de la classe : L'implémentation de cette méthode est similaire à celle décrite dans la classe précédente, à l'exception du type de retour (malheureusement, il n'y a pas de modèles de classe dans MQL5, nous devons donc écrire ces choses à chaque fois). - l'algorithme GNG nécessite l'initialisation d'une connexion à son début, qui est effectuée dans cette fonction. La fonction est claire. La différence entre les méthodes et est que la première recherche une connexion avec un voisin à partir du début de la liste, tandis que la seconde commence par le nœud à côté de l'actuel (m_curr_node ). Ici, la description des structures de données est terminée. Il est temps d’entamer la programmation de notre propre algorithme. Créez un nouveau fichier d'en-tête GNG.mqh, placez-le dans le dossier Include\GNG. La classe CGNGAlgorithm dispose deux champs importants - les pointeurs sur les listes chaînées de Neurones et les connexions entre eux. Ils seront le support physique de la structure de notre réseau de neurones. Les champs restants sont les paramètres de l'algorithme définis de l'extérieur. Parmi les méthodes de classe auxiliaire, je distinguerais qui passe les paramètres externes à une instance de l'algorithme et initialise les structures de données et le critère d'arrêt qui, comme nous l'avons convenu précédemment, ne fait rien en retournant toujours La fonction qui est la fonction principale de l'algorithme qui traite le vecteur de données indiqué, ne contient aucune subtilité : nous avons organisé les données et les méthodes de travail avec celles-ci de manière à ce qu'en ce qui concerne l'algorithme, nous devons seulement passer mécaniquement par toutes ses étapes. Leur emplacement dans le code est indiqué par les commentaires appropriés. Montrons le travail de l'algorithme sur des données réelles du terminal MetaTrader 5. Ici, nous ne visons pas la création d’ un Expert Advisor fonctionnel basé sur GNG (c'est un peu trop pour un article), nous souhaitons seulement voir comment fonctionne le gaz neuronal croissant , ce qu'on appelle une présentation "en direct". Afin de rendre magnifiquement les données, créez une fenêtre vide échelonnée le long de l'axe des prix dans la fourchette de 0 à 100. Pour cela, nous utilisons un indicateur "vide" Dummy.mq5 (il n'a pas d'autres fonctions) : Dans le MetaEditor, créez un script appelé GNG.mq5 - il affichera le réseau dans la fenêtre de l'indicateur fictif. Paramètres externes - le nombre de vecteurs de données pour l'apprentissage et les paramètres de l'algorithme : Déclarez des variables globales : Commencez à écrire la fonction . Tout d'abord, trouvons la fenêtre nécessaire : Pour les données d'entrée, nous utilisons les valeurs de l'indicateur RSI - c'est pratique car ses valeurs sont normalisées dans la fourchette de 0 à 100, nous n'aurons donc pas besoin de procéder à un prétraitement. Pour un vecteur d'entrée du réseau de neurones, nous supposons la paire (input dimension=2) qui se compose de deux valeurs RSI - sur la barre actuelle et précédente (dont le nom scientifique est "immersion d'une série temporelle dans un espace de caractéristiques bidimensionnel") . Il est plus facile d'afficher des vecteurs à deux dimensions sur un organigramme. Donc, préparez d'abord les données à initialiser et créez une instance de l'objet algorithme : Initialisez maintenant l'algorithme : une boîte rectangulaire et des étiquettes d'information (pour voir visuellement combien d'itérations de l'algorithme ont été traitées et combien de neurones ont « poussé » dans le réseau) : Dans la boucle principale, préparez un vecteur pour l'entrée de l'algorithme, affichez-le sur le graphique sous la forme d'un point bleu : Passez le vecteur à l'algorithme (une seule fonction - c'est l'avantage de l'approche orientée-objet !) : Retirez les anciens neurones du tableau et dessinez-en de nouveaux (cercles rouges) et des connexions (lignes pointillées jaunes), mettez en surbrillance le gagnant et le deuxième meilleur neurone avec les couleurs Jaune/vert et Vert : Compilez le code, démarrez l'indicateur fictif, puis exécutez le script GNG sur le même graphique. Une image comme celle-ci doit apparaître sur le graphique : Vous voyez, l'algorithme fonctionne vraiment : la grille s'adapte progressivement aux nouvelles données entrantes en essayant de couvrir leur espace conformément à la densité de peuplement des points bleus. La vidéo ne montre que le tout début du processus d'apprentissage (seulement 1000 itérations, alors que le nombre réel de vecteurs requis pour l'apprentissage de GNG peut aller jusqu'à des dizaines de milliers) ; Cependant, cela nous donne déjà une assez bonne compréhension du processus. Comme indiqué précédemment, le problème principal de GNG est son incapacité à suivre des séries mobiles avec des caractéristiques en perpétuelle mutation. De telles distributions "sautantes" de signaux d'entrée peuvent conduire à ce qu'une grande partie des neurones de la couche GNG, ayant déjà pris une structure assez topologique, se retrouvent soudainement en faillite. De plus, puisque les signaux d'entrée ne tombent pas dans la région de leur emplacement, l'âge des connexions entre ces neurones n'est pas augmenté, par conséquent, la partie "morte" du réseau, qui "se rappelle" des anciennes caractéristiques du signal, n’assure pas un travail utile, mais consomme seulement des ressources informatiques (voir. Fig 2). Dans le cas des distributions lentement dérivantes, cet effet néfaste n'est pas observé : si la vitesse de dérive est comparable à la « vitesse de déplacement » des neurones dans l'adaptation des poids, GNG est en mesure de suivre ces changements. Des nœuds séparés inactifs (morts) peuvent également apparaître sur le réseau si une fréquence très élevée d'insertion de nouveaux neurones (le paramètre λ) est donnée à l'entrée de l'algorithme. Sa valeur trop faible conduit au fait que le réseau commence à suivre des émissions statistiquement insignifiantes de distribution de signaux d'entrée, dont la probabilité de récurrence est très faible. Si un neurone GNG est inséré à cet endroit, il restera presque certainement inactif pendant longtemps. De plus, comme le montrent les recherches empiriques, la faible valeur d'insertion, bien qu'elle contribue à la diminution rapide de l'erreur moyenne du réseau au début du processus d'apprentissage,découlant de la formation donne les pires valeurs de cet indicateur : un tel réseau regroupe les données de manière plus grossière. Le problème de la distribution "sautante" peut être résolu en modifiant l'algorithme d'une certaine manière. La modification largement acceptée est celle qui introduit le facteur dit d'utilité des neurones (GNG avec facteur d'utilité ou GNG-U). Les modifications du pseudocode dans ce cas sont infimes et sont les suivantes : à chaque neurone une variable appelée « facteur d'utilité » (cette variable dans la liste des champs de la classe CGG Neuron) est mise en conformité ; à l'étape 4, après avoir adapté les poids du neurone gagnant, nous modifions son facteur d'utilité d'un montant égal à la différence entre une erreur du deuxième meilleur neurone et le gagnant : Physiquement, cet additif est la quantité par laquelle l'erreur totale du réseau aurait changé s'il n'y avait pas eu de gagnant (alors le deuxième meilleur gagnant deviendrait le gagnant), c'est-à-dire qu'il caractérise réellement l'utilité du neurone pour réduire l'erreur globale. les neurones sont supprimés à l'étape 8 selon un principe différent : seul un nœud avec une valeur d'utilité minimale est supprimé, et uniquement si la valeur d'erreur maximale dans la couche dépasse son facteur d'utilité de plusieurs fois : lors de l'ajout d'un nouveau nœud à l'étape 9, son facteur d'utilité est calculé comme la moyenne arithmétique entre les utilités des neurones voisins : à l'étape 10 le facteur d'utilité de tous les neurones est diminué de la même manière et dans le même ordre que les variables d'erreurs : La constante ici est capitale à la capacité de suivre la mobilité : sa valeur trop grande conduit à la suppression non seulement de vraiment « peu d'utilité », mais aussi d'autres neurones tout à fait utilisables ; une valeur trop faible conduit à des suppressions rares et par conséquent, à un taux d'adaptation réduit. Dans le fichier GNG.mqh, l'algorithme GNG-U est décrit comme une classe dérivée de CGG Algorithm. Les lecteurs peuvent suivre indépendamment les modifications et essayer d'utiliser l'algorithme. En créant un réseau de neurones, nous avons passé en revue les principales caractéristiques de la programmation orientée-objet bâtie dans le langage MQL5. Il semble assez évident qu'en l'absence de telles opportunités (ce dont je remercie les développeurs), il serait beaucoup plus compliqué d'écrire des programmes complexes pour le trading automatisé. Quant aux algorithmes analysés, il est vital de noter que, naturellement, ils peuvent être améliorés. En particulier, le premier candidat à la mise à niveau est le nombre de paramètres externes. Ils sont assez nombreux, et cela indique qu'il peut bien y avoir de telles modifications, dans lesquelles ces paramètres deviendraient des variables internes et seraient sélectionnés en fonction des caractéristiques des données d'entrée et de l'état de l'algorithme. L'auteur de l'article souhaite bonne chance à tous dans l'étude de la neuro-informatique et son utilisation dans le trading ! Crédit: Aliou Ba,ingénieur data scientist spécialiste du big data,Modélisation et DL. Dr Assoma Diaby,mathématicien probabiliste. Dr Mouhamadou Rassoul Mbengue , statisticien économétricien .
All 15 repositories loaded